CVE-2026-64465: Linux kernel · usb: xhci: Fix sleep in atomic context in xhci_free_streams()
Source GCVE Database
Not known to be exploited.
Data as of 26 Oct 2026, 17:16 UTC
Rated by Threat Radar · No CVSS score from NVD or the CNA
- EPSS
- 0.1% chance of exploitation in 30 days – higher than 7% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
Exploitation evidence
Disclosed: evidence found.
CVE published 25 Jul 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponised: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.
What to do
AI-suggested
A fix has been implemented in the Linux kernel to address this issue by restructuring the code to avoid sleeping in atomic context. Users should apply the official kernel updates that include this patch. Since this is a kernel-level fix, upgrading to a kernel version containing this patch is the recommended remediation. Patch status is not explicitly confirmed in the provided data; check the vendor or Linux kernel advisory for the exact fixed versions and update accordingly.
Description
In the Linux kernel, the following vulnerability has been resolved: usb: xhci: Fix sleep in atomic context in xhci_free_streams() When a USB device with active stream endpoints is disconnected, xhci_free_streams() is called from the hub_event workqueue to free the stream resources. It calls xhci_free_stream_info() while holding xhci->lock with irqs disabled. xhci_free_stream_info() invokes xhci_free_stream_ctx(), which calls dma_free_coherent() for large stream context arrays. dma_free_coherent() can sleep (e.g. via vunmap), triggering a BUG when called from atomic context. Call trace: dma_free_attrs+0x174/0x220 xhci_free_stream_info+0xd0/0x11c xhci_free_streams+0x278/0x37c usb_free_streams+0x98/0xc0 usb_unbind_interface+0x1b8/0x2f8 device_release_driver_internal+0x1d4/0x2cc device_release_driver+0x18/0x28 bus_remove_device+0x160/0x1a4 device_del+0x1ec/0x350 usb_disable_device+0x98/0x214 usb_disconnect+0xf0/0x35c hub_event+0xab4/0x19ec process_one_work+0x278/0x63c Fix this by saving the stream_info pointers and clearing the ep references under the lock, then calling xhci_free_stream_info() outside the lock where sleeping is allowed.
References
- nvd.nist.gov/vuln/detail/CVE-2026-64465 (opens in a new tab)
- git.kernel.org/stable/c/10666ac9c552990204e791af653abf8e9d9ff619 (opens in a new tab)
- git.kernel.org/stable/c/1e45aa722c4ce5663e987102aac18c8ad6a83fdd (opens in a new tab)
- git.kernel.org/stable/c/42c37c4b75d38b51d84f31a8e29427f5e06a7c2a (opens in a new tab)
- git.kernel.org/stable/c/93cd037da94fcb93183bfb2457e3a56d3eb4c8f4 (opens in a new tab)
- git.kernel.org/stable/c/d107eb316144c5fb958486e7fe604cd7f1b35cda (opens in a new tab)
- git.kernel.org/stable/c/e623e4a203f56d5c57519a9a3cb29600551534ad (opens in a new tab)
- git.kernel.org/stable/c/f7b022ae07685e7526fc39f387ce65b5d309dd3b (opens in a new tab)
- git.kernel.org/stable/c/f90586129cf9e1fbdb718ef602eea3f15dc1c31c (opens in a new tab)