CVE-2026-64454 in Linuxinformación

Resumen

por VulDB • 2026-07-26

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

usb: dwc3: ejecutar la desconexión del gadget desde un contexto de suspensión susceptible a bloqueos (sleepable)

dwc3_gadget_suspend() adquiere dwc->lock con las interrupciones deshabilitadas y luego llama a dwc3_disconnect_gadget(). Para las devoluciones asíncronas, esta función auxiliar solo utiliza spin_unlock()/spin_lock(), por lo que la devolución de llamada ->disconnect() del gadget sigue ejecutándose con las interrupciones deshabilitadas y cualquier devolución susceptible a bloqueos provoca una alerta en Lockdep.

Este problema fue encontrado mediante nuestra herramienta de análisis estático y luego revisado manualmente contra el árbol actual.

El PoC (Prueba de Concepto) mantuvo la cadena dwc3_gadget_suspend() -> dwc3_disconnect_gadget() -> gadget_driver->disconnect(), y Lockdep informó:

BUG: sleeping function called from invalid context gadget_disconnect+0x21/0x39 [vuln_msv]
dwc3_gadget_suspend.constprop.0+0x2b/0x42 [vuln_msv]

Se mantiene la selección de la devolución de llamada disconnect en un único auxiliar común, pero se añade una envoltura (wrapper) susceptible a bloqueos para el lado de suspensión que captura instantáneamente la devolución bajo dwc->lock y luego la ejecuta después de spin_unlock_irqrestore(). La ruta de eventos regular sigue utilizando la ventana existente de spin_unlock()/spin_lock().

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsable

Linux

Reservar

2026-07-19

Divulgación

2026-07-25

Moderación

aceptado

Artículo

VDB-383257

CPE

listo

EPSS

0.00215

KEV

no

Actividades

bajo

Fuentes

Want to stay up to date on a daily basis?

Enable the mail alert feature now!