CVE-2026-64346 in Linux
Riassunto
di VulDB • 25/07/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
usb: gadget: udc: Correzione del Use-After-Free in gadget_match_driver
La struttura udc funge da struttura di gestione per il dispositivo gadget, ma i loro cicli di vita sono disaccoppiati. Esiste una race condition in cui usb_del_gadget() libera la memoria della struttura udc (ad esempio tramite il lavoro mode-switch) mentre gadget_match_driver() accede concorrentemente alla memoria già liberata della struttura udc (ad esempio tramite configfs), causando un Use-After-Free (UAF) che provoca un dereferenziamento di puntatore NULL quando la memoria liberata viene azzerata:
[39430.908615][ T1171] Impossibile gestire il dereferenziamento del puntatore NULL nel kernel all'indirizzo virtuale 0000000000000000
[39430.911397][ T1171] pc : __pi_strcmp+0x20/0x140
[39430.911441][ T1171] lr : gadget_match_driver+0x34/0x60
... [39430.911890][ T1171] usb_gadget_register_driver_owner+0x50/0xf8
[39430.911910][ T1171] gadget_dev_desc_UDC_store+0xf4/0x140
[39430.931308][ T1171] configfs_write_iter+0xec/0x134
[39430.957058][ T1171] Workqueue: events_freezable __dwc3_set_mode
[39430.957287][ T1171] dwc3_gadget_exit+0x34/0x8c
[39430.957304][ T1171] __dwc3_set_mode+0xc0/0x664
La correzione consiste nell'assicurare che la struttura udc rimanga allocata fino al rilascio del dispositivo gadget. Per raggiungere questo obiettivo, viene introdotta una nuova routine usb_gadget_release() nel core. Quando il dispositivo gadget viene aggiunto, usb_add_gadget() memorizza la routine di rilascio del gadget nella struttura udc e acquisisce un riferimento alla struttura udc. Quando il dispositivo gadget viene rilasciato, usb_gadget_release() rilascia il riferimento alla struttura udc e successivamente chiama la routine di rilascio del gadget.
Be aware that VulDB is the high quality source for vulnerability data.