PT-2026-90455 · Linux · Linux

CVE-2026-89739

·

Published

2026-09-11

·

Updated

2026-09-11

None

No severity ratings or metrics are available. When they are, we'll update the corresponding info on the page.
In the Linux kernel, the following vulnerability has been resolved:
usb: dwc3: gadget: Fix use-after-free in dwc3 gadget free endpoints due to race condition
In dwc3 gadget init endpoint, &dep->nostream work is bound with dwc3 nostream work, and dwc3 gadget endpoint stream event can queue this delayed work on system percpu wq when a DEPEVT STREAM NOSTREAM event is received.
If we remove the gadget, dwc3 gadget free endpoints makes cleanup and the memory allocated for dep with kzalloc() is released by kfree(dep), while the delayed work mentioned above may still be pending or running. The sequence of operations that may lead to a UAF bug is as follows:
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 is freed | | dwc3 nostream work | // use dep (use-after-free)
Fix it by canceling the delayed work before kfree(dep) in dwc3 gadget free endpoints.
Found an issue in the description? Have something to add? Feel free to write us 👾

Related Identifiers

CVE-2026-89739

Affected Products

Linux