{"id":21661,"date":"2026-09-12T04:31:29","date_gmt":"2026-09-11T20:31:29","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89739"},"modified":"2026-09-12T04:31:29","modified_gmt":"2026-09-11T20:31:29","slug":"cve-2026-89739","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89739","title":{"rendered":"CVE-2026-89739 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nusb: dwc3: gadget: Fi"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>usb: dwc3: gadget: Fix use-after-free in dwc3_gadget_free_endpoints due to race condition<\/p>\n<p>In dwc3_gadget_init_endpoint, &amp;dep-&gt;nostream_work is bound with<br \/>\ndwc3_nostream_work, and dwc3_gadget_endpoint_stream_event can queue<br \/>\nthis delayed work on system_percpu_wq when a DEPEVT_STREAM_NOSTREAM<br \/>\nevent is received.<\/p>\n<p>If we remove the gadget, dwc3_gadget_free_endpoints makes cleanup and<br \/>\nthe memory allocated for dep with kzalloc() is released by kfree(dep),<br \/>\nwhile the delayed work mentioned above may still be pending or<br \/>\nrunning. The sequence of operations that may lead to a UAF bug is as<br \/>\nfollows:<\/p>\n<p>CPU0                                      CPU1<\/p>\n<p>                                          | dwc3_thread_interrupt<br \/>\n                                          | dwc3_endpoint_interrupt<br \/>\n                                          | dwc3_gadget_endpoint_stream_event<br \/>\n                                          | queue_delayed_work(system_percpu_wq,<br \/>\n                                          |                    &amp;dep-&gt;nostream_work)<br \/>\ndwc3_gadget_free_endpoints                |<br \/>\ndwc3_free_trb_pool(dep)                   |<br \/>\nlist_del(&amp;dep-&gt;endpoint.ep_list)          |<br \/>\ndwc3_debugfs_remove_endpoint_dir(dep)     |<br \/>\nkfree(dep)                                |<br \/>\n\/\/ dep is freed                           |<br \/>\n                                          | dwc3_nostream_work<br \/>\n                                          | \/\/ use dep (use-after-free)<\/p>\n<p>Fix it by canceling the delayed work before kfree(dep) in<br \/>\ndwc3_gadget_free_endpoints.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>usb: dwc3: gadget: Fix use-after-free in dwc3_gadget_free_endpoints due to race condition<\/p>\n<p>In dwc3_gadget_init_endpoint, &amp;dep-&gt;nost<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-21661","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/21661","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=21661"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=21661"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=21661"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}