CVE-2026-64346 in Linux
Zusammenfassung
von VulDB • 26.07.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
usb: gadget: udc: Behebung eines Use-After-Free-Fehlers in gadget_match_driver
Die udc-Struktur fungiert als Verwaltungsstruktur für das Gadget, doch ihre Lebenszyklen sind entkoppelt. Es besteht eine Race Condition (Wettlaufsituation), bei der usb_del_gadget() den Speicher der udc freigibt (z. B. über die mode-switch-Arbeit), während gleichzeitig gadget_match_driver() auf den freigegebenen ucd-Speicher zugreift (z. B. über configfs). Dies verursacht einen Use-After-Free-Fehler (UAF), der eine Dereferenzierung eines NULL-Zeigers auslöst, wenn der fre gegebene Speicher mit Nullen überschrieben wird:
[39430.908615][ T1171] Unable to handle kernel NULL pointer dereference at virtual address 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
Dies wird behoben, indem sichergestellt wird, dass die udc-Struktur bis zur Freigabe des Gadgets allokiert bleibt. Dazu wird im Core eine neue Routine usb_gadget_release() eingeführt. Wenn das Gadget hinzugefügt wird, speichert usb_add_gadget() die Release-Routine des Gadgets in der udc-Struktur und nimmt einen Verweis auf die udc entgegen. Bei der Freigabe des Gadgets reduziert usb_gadget_release() den Verweis auf die udc und ruft anschließend die Release-Routine des Gadgets auf.
Once again VulDB remains the best source for vulnerability data.