{"id":24578,"date":"2026-09-16T20:32:30","date_gmt":"2026-09-16T12:32:30","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89891"},"modified":"2026-09-16T20:32:30","modified_gmt":"2026-09-16T12:32:30","slug":"cve-2026-89891","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89891","title":{"rendered":"CVE-2026-89891 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nmedia: em28xx: fix us"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>media: em28xx: fix use-after-free of dev_next-&gt;devlist on disconnect<\/p>\n<p>When a device with has_dual_ts=1 is probed and the is_audio_only path<br \/>\nis taken, both dev and dev-&gt;dev_next are added to the global<br \/>\nem28xx_devlist via em28xx_init_extension(). However, during disconnect,<br \/>\nem28xx_close_extension(dev) only calls list_del(&amp;dev-&gt;devlist), leaving<br \/>\ndev-&gt;dev_next-&gt;devlist still linked in the global list. When dev_next is<br \/>\nsubsequently freed via kref_put(), its devlist entry becomes a dangling<br \/>\npointer in em28xx_devlist. The next device probe that calls<br \/>\nem28xx_init_extension() triggers a list corruption BUG when list_add_tail<br \/>\ndetects the freed node.<\/p>\n<p>This bug was exposed by commit a368ecde8a50 (&#8220;USB: core: Fix duplicate<br \/>\nendpoint bug by clearing reserved bits in the descriptor&#8221;) which clears<br \/>\nreserved bits in bEndpointAddress during endpoint parsing. This causes<br \/>\nfuzzed endpoint addresses like 0xf3 to be normalized to 0x83, which<br \/>\nem28xx interprets as a vendor audio endpoint, enabling the<br \/>\nis_audio_only + has_dual_ts code path that was previously unreachable<br \/>\nwith such descriptors.<\/p>\n<p>Fix this by removing dev-&gt;dev_next-&gt;devlist from the global list in<br \/>\nem28xx_close_extension() before the device is freed.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>media: em28xx: fix use-after-free of dev_next-&gt;devlist on disconnect<\/p>\n<p>When a device with has_dual_ts=1 is probed and the is_audio_o<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-24578","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/24578","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=24578"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=24578"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=24578"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}