CVE-2026-64585
Received Received - Intake

CAN Netdev Use-After-Free in esd_usb Driver

Vulnerability report for CVE-2026-64585, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-06

Last updated on: 2026-08-06

Assigner: kernel.org

Description

In the Linux kernel, the following vulnerability has been resolved: can: esd_usb: kill anchored URBs before freeing netdevs esd_usb_disconnect() frees each CAN netdev with free_candev() inside its per-netdev loop and only calls unlink_all_urbs(dev) afterwards. The per-netdev private data (struct esd_usb_net_priv) is embedded in the net_device allocation returned by alloc_candev(), so once free_candev() has run, dev->nets[i] points to freed memory. unlink_all_urbs() then dereferences the freed dev->nets[i] to kill the per-netdev TX anchor (usb_kill_anchored_urbs(&priv->tx_submitted)), clear active_tx_jobs, and reset priv->tx_contexts[]. Reorder the teardown so the anchored URBs are killed before the netdevs are freed, matching other CAN/USB drivers in the same directory such as ems_usb, usb_8dev and mcba_usb, which unregister, then unlink, then free: unregister the netdevs first (which stops their TX queues), call unlink_all_urbs(dev) once, then free the netdevs. This issue was found by an in-house static analysis tool.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-06
Last Modified
2026-08-06
Generated
2026-08-06
AI Q&A
2026-08-06
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Currently, no data is known.

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in the Linux kernel involves improper cleanup during the disconnection of ESD USB CAN devices. The issue occurs when the kernel frees CAN network devices before killing anchored URBs (USB Request Blocks), leading to use-after-free errors. Specifically, esd_usb_disconnect() frees each CAN netdev and then attempts to unlink URBs, but the private data embedded in the netdev points to freed memory, causing crashes or undefined behavior when URBs are later dereferenced.

Detection Guidance

This vulnerability is specific to the Linux kernel's CAN USB driver (esd_usb). Detection requires checking if the affected driver is loaded and inspecting kernel logs for related errors. Commands like 'lsmod | grep esd_usb' can verify if the module is loaded. Kernel logs may show issues during USB device disconnection.

Impact Analysis

This vulnerability could cause system instability, crashes, or potential privilege escalation if exploited. Users running systems with ESD USB CAN devices may experience kernel panics or unexpected behavior during device disconnection. Systems relying on real-time CAN communication could face disruptions or data loss.

Mitigation Strategies

Update the Linux kernel to a patched version where this issue is resolved. Avoid unplugging or disconnecting CAN USB devices while the system is running. Monitor kernel logs for errors related to esd_usb or CAN device disconnections.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-64585. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart