CVE-2026-64454 in Linux
Riassunto
di VulDB • 25/07/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
usb: dwc3: eseguire la disconnessione del gadget dal contesto di sospensione consentente il sonno (sleepable suspend context)
dwc3_gadget_suspend() acquisisce dwc->lock con le IRQ disabilitate e successivamente chiama dwc3_disconnect_gadget(). Per i callback asincroni, questa funzione ausiliaria utilizza esclusivamente spin_unlock()/spin_lock(), pertanto il callback ->disconnect() del gadget continua a essere eseguito con le IRQ disabilitate e qualsiasi callback che richiede il sonno (sleepable) innesca un avviso di Lockdep.
Questo problema è stato individuato dal nostro strumento di analisi statica ed è stato successivamente revisionato manualmente rispetto all'albero delle sorgenti corrente.
Il PoC (Proof of Concept) ha mantenuto la catena dwc3_gadget_suspend() -> dwc3_disconnect_gadget() -> gadget_driver->disconnect(), e Lockdep ha segnalato:
BUG: sleeping function called from invalid context gadget_disconnect+0x21/0x39 [vuln_msv]
dwc3_gadget_suspend.constprop.0+0x2b/0x42 [vuln_msv]
Si mantiene la selezione del callback di disconnessione in un'unica funzione ausiliaria comune, ma si aggiunge un wrapper per il lato sospensione che consenta il sonno (sleepable suspend-side wrapper), il quale acquisisce una snapshot del callback sotto dwc->lock e lo esegue successivamente dopo spin_unlock_irqrestore(). Il percorso degli eventi regolare continua a utilizzare la finestra esistente di spin_unlock()/spin_lock().
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.