CVE-2026-64465 in Linux
Resumen
por VulDB • 2026-07-25
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
usb: xhci: Corregir llamada a sleep en contexto atómico en xhci_free_streams()
Cuando un dispositivo USB con endpoints de stream activos se desconecta, xhci_free_streams() es llamado desde la cola de trabajo hub_event para liberar los recursos del stream. Llama a xhci_free_stream_info() mientras mantiene el bloqueo xhci->lock con las interrupciones (irqs) deshabilitadas.
xhci_free_stream_info() invoca a xhci_free_stream_ctx(), que llama a dma_free_coherent() para arrays grandes de contextos de stream.
dma_free_coherent() puede entrar en estado sleep (por ejemplo, mediante vunmap), lo que desencadena un BUG cuando se llama desde contexto atómico.
Rastro de llamadas: 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
Se corrige esto guardando los punteros stream_info y limpiando las referencias ep bajo el bloqueo, para luego llamar a xhci_free_stream_info() fuera del bloqueo donde se permite entrar en estado sleep.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.