{"id":5438,"date":"2026-09-04T18:47:50","date_gmt":"2026-09-04T10:47:50","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-68370"},"modified":"2026-09-04T18:47:50","modified_gmt":"2026-09-04T10:47:50","slug":"cve-2026-68370","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-68370","title":{"rendered":"CVE-2026-68370 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nusb: gadget: dummy_hc"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>usb: gadget: dummy_hcd: prevent fifo_req reuse during giveback<\/p>\n<p>dummy_hcd embeds a single shared usb_request (dum-&gt;fifo_req) that the<br \/>\n&#8220;emulated single-request FIFO&#8221; fast-path in dummy_queue() reuses for<br \/>\nsmall IN transfers: it copies the caller&#8217;s request into it<br \/>\n(req-&gt;req = *_req) and queues it, treating list_empty(&amp;fifo_req.queue)<br \/>\nas &#8220;the slot is free&#8221;.<\/p>\n<p>The completion side (dummy_timer\/transfer\/nuke\/dummy_dequeue) follows<br \/>\nthe standard pattern: list_del_init(&amp;req-&gt;queue) unlinks the request,<br \/>\nthen the lock is dropped and usb_gadget_giveback_request() invokes<br \/>\nreq-&gt;complete().  But list_del_init() makes fifo_req.queue look empty<br \/>\n*before* the completion callback returns, so a concurrent dummy_queue()<br \/>\non another CPU sees the slot as free, reuses fifo_req and runs<br \/>\nreq-&gt;req = *_req &#8212; overwriting req-&gt;complete while dummy_timer is<br \/>\nmid-calling it.  The indirect call then jumps to a clobbered pointer,<br \/>\ncausing a general protection fault \/ page fault in dummy_timer<br \/>\n(syzkaller extid faf3a6cf579fc65591ca).  The clobbering write is an<br \/>\nin-bounds memcpy on a live shared object, so KASAN cannot flag it.<\/p>\n<p>Add a fifo_req_busy bit covering the shared request&#8217;s whole lifetime:<br \/>\nset it in dummy_queue() when the FIFO fast-path takes fifo_req (making<br \/>\nit the fast-path guard, replacing the list_empty(&amp;fifo_req.queue)<br \/>\ntest), and clear it after the completion callback has returned, via a<br \/>\ndummy_giveback() helper used at all four gadget-request giveback<br \/>\nsites.  The shared slot can no longer be reused until its completion<br \/>\ncallback has finished.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>usb: gadget: dummy_hcd: prevent fifo_req reuse during giveback<\/p>\n<p>dummy_hcd embeds a single shared usb_request (dum-&gt;fifo_req) that t<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-5438","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/5438","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=5438"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5438"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5438"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}