0.0
NA
CVE-2026-64585
can: esd_usb: kill anchored URBs before freeing netdevs
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.

INFO

Published Date :

Aug. 6, 2026, 8:16 a.m.

Last Modified :

Aug. 6, 2026, 8:16 a.m.

Remotely Exploit :

No

Source :

416baaa9-dc9f-4396-8d5f-8c081fb06d67
Affected Products

The following products are affected by CVE-2026-64585 vulnerability. Even if cvefeed.io is aware of the exact versions of the products that are affected, the information is not represented in the table below.

No affected product recoded yet

Solution
Reorder teardown to kill anchored URBs before freeing netdevs.
  • Unregister netdevs first.
  • Call unlink_all_urbs(dev) once.
  • Free netdevs after unlinking URBs.
CWE - Common Weakness Enumeration

While CVE identifies specific instances of vulnerabilities, CWE categorizes the common flaws or weaknesses that can lead to vulnerabilities. CVE-2026-64585 is associated with the following CWEs:

Common Attack Pattern Enumeration and Classification (CAPEC)

Common Attack Pattern Enumeration and Classification (CAPEC) stores attack patterns, which are descriptions of the common attributes and approaches employed by adversaries to exploit the CVE-2026-64585 weaknesses.

We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).

Results are limited to the first 15 repositories due to potential performance issues.

The following list is the news that have been mention CVE-2026-64585 vulnerability anywhere in the article.

The following table lists the changes that have been made to the CVE-2026-64585 vulnerability over time.

Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.

  • New CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67

    Aug. 06, 2026

    Action Type Old Value New Value
    Added Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '96d8e90382dc336b5de401164597edfdc2e8d9f1', 'lessThan': 'aa1d005927db38af783c1a4a8a00a39e0229ab2d', 'versionType': 'git'}, {'status': 'affected', 'version': '96d8e90382dc336b5de401164597edfdc2e8d9f1', 'lessThan': 'a02e1d8f191324583599544d54e59e6a2b74bb0e', 'versionType': 'git'}, {'status': 'affected', 'version': '96d8e90382dc336b5de401164597edfdc2e8d9f1', 'lessThan': 'a3314f10369df70925140f59bbe069718f65a0b9', 'versionType': 'git'}, {'status': 'affected', 'version': '96d8e90382dc336b5de401164597edfdc2e8d9f1', 'lessThan': '765ba1c91823a296447528791b89a6504947fd5c', 'versionType': 'git'}, {'status': 'affected', 'version': '96d8e90382dc336b5de401164597edfdc2e8d9f1', 'lessThan': '5832c55b3c824ba2fe9c36ac3c411baddcce053e', 'versionType': 'git'}, {'status': 'affected', 'version': '96d8e90382dc336b5de401164597edfdc2e8d9f1', 'lessThan': 'c43122fef328a70045fe7621c06de6b2b8e19264', 'versionType': 'git'}], 'programFiles': ['drivers/net/can/usb/esd_usb.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '2.6.36'}, {'status': 'unaffected', 'version': '0', 'lessThan': '2.6.36', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '6.1.178', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.145', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.97', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.40', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.5', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2-rc4', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['drivers/net/can/usb/esd_usb.c'], 'defaultStatus': 'affected'}]
    Added 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.
    Added Reference https://git.kernel.org/stable/c/5832c55b3c824ba2fe9c36ac3c411baddcce053e
    Added Reference https://git.kernel.org/stable/c/765ba1c91823a296447528791b89a6504947fd5c
    Added Reference https://git.kernel.org/stable/c/a02e1d8f191324583599544d54e59e6a2b74bb0e
    Added Reference https://git.kernel.org/stable/c/a3314f10369df70925140f59bbe069718f65a0b9
    Added Reference https://git.kernel.org/stable/c/aa1d005927db38af783c1a4a8a00a39e0229ab2d
    Added Reference https://git.kernel.org/stable/c/c43122fef328a70045fe7621c06de6b2b8e19264
EPSS is a daily estimate of the probability of exploitation activity being observed over the next 30 days. Following chart shows the EPSS score history of the vulnerability.