Skip to content
CVE PROGRAM SOURCE RECORDUnscored

CVE-2026-64465

usb: xhci: Fix sleep in atomic context in xhci_free_streams()

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.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • 8df75f42f8e67e2851cdcf6da91640fb881defd1 to < e623e4a203f56d5c57519a9a3cb29600551534adaffected
  • 8df75f42f8e67e2851cdcf6da91640fb881defd1 to < d107eb316144c5fb958486e7fe604cd7f1b35cdaaffected
  • 8df75f42f8e67e2851cdcf6da91640fb881defd1 to < 1e45aa722c4ce5663e987102aac18c8ad6a83fddaffected
  • 8df75f42f8e67e2851cdcf6da91640fb881defd1 to < 10666ac9c552990204e791af653abf8e9d9ff619affected
  • 8df75f42f8e67e2851cdcf6da91640fb881defd1 to < f7b022ae07685e7526fc39f387ce65b5d309dd3baffected
  • 8df75f42f8e67e2851cdcf6da91640fb881defd1 to < f90586129cf9e1fbdb718ef602eea3f15dc1c31caffected
  • 8df75f42f8e67e2851cdcf6da91640fb881defd1 to < 93cd037da94fcb93183bfb2457e3a56d3eb4c8f4affected
  • 8df75f42f8e67e2851cdcf6da91640fb881defd1 to < 42c37c4b75d38b51d84f31a8e29427f5e06a7c2aaffected

Linux Linux

Default version status: affected

  • 2.6.35affected
  • 0 to < 2.6.35unaffected
  • 5.10.261 to ≤ 5.10.*unaffected
  • 5.15.212 to ≤ 5.15.*unaffected
  • 6.1.178 to ≤ 6.1.*unaffected
  • 6.6.145 to ≤ 6.6.*unaffected
  • 6.12.96 to ≤ 6.12.*unaffected
  • 6.18.39 to ≤ 6.18.*unaffected
  • 7.1.4 to ≤ 7.1.*unaffected
  • 7.2 to ≤ *unaffected

References