CVE-2026-89739 in Linux
Riassunto
di VulDB • 11/09/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
usb: dwc3: gadget: Correzione del use-after-free in dwc3_gadget_free_endpoints dovuta a race condition
In dwc3_gadget_init_endpoint, &dep->nostream_work viene associato a dwc3_nostream_work e dwc3_gadget_endpoint_stream_event può accodare questo lavoro differito su system_percpu_wq quando si riceve un evento DEPEVT_STREAM_NOSTREAM.
Se rimuoviamo il gadget, dwc3_gadget_free_endpoints esegue la pulizia e la memoria allocata per dep con kzalloc() viene rilasciata da kfree(dep), mentre il lavoro differito menzionato sopra potrebbe essere ancora in coda o in esecuzione. La sequenza di operazioni che può portare a un bug UAF è la seguente:
CPU0 CPU1
| dwc3_thread_interrupt | dwc3_endpoint_interrupt | dwc3_gadget_endpoint_stream_event | queue_delayed_work(system_percpu_wq, | &dep->nostream_work) dwc3_gadget_free_endpoints | dwc3_free_trb_pool(dep) | list_del(&dep->endpoint.ep_list) | dwc3_debugfs_remove_endpoint_dir(dep) | kfree(dep) | // dep è liberato | | dwc3_nostream_work | // uso di dep (use-after-free)
Risolvere il problema cancellando il lavoro differito prima di kfree(dep) in dwc3_gadget_free_endpoints.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.