<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Mon, 28 Sep 2026 09:28:29 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-89891 — media: em28xx: fix use-after-free of dev_next-&gt;devlist on disconnect</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-89891</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;media: em28xx: fix use-after-free of dev_next-&amp;gt;devlist on disconnect&lt;/p&gt;
&lt;p&gt;When a device with has_dual_ts=1 is probed and the is_audio_only path
is taken, both dev and dev-&amp;gt;dev_next are added to the global
em28xx_devlist via em28xx_init_extension(). However, during disconnect,
em28xx_close_extension(dev) only calls list_del(&amp;amp;dev-&amp;gt;devlist), leaving
dev-&amp;gt;dev_next-&amp;gt;devlist still linked in the global list. When dev_next is
subsequently freed via kref_put(), its devlist entry becomes a dangling
pointer in em28xx_devlist. The next device probe that calls
em28xx_init_extension() triggers a list corruption BUG when list_add_tail
detects the freed node.&lt;/p&gt;
&lt;p&gt;This bug was exposed by commit a368ecde8a50 (&amp;#34;USB: core: Fix duplicate
endpoint bug by clearing reserved bits in the descriptor&amp;#34;) which clears
reserved bits in bEndpointAddress during endpoint parsing. This causes
fuzzed endpoint addresses like 0xf3 to be normalized to 0x83, which
em28xx interprets as a vendor audio endpoint, enabling the
is_audio_only + has_dual_ts code path that was previously unreachable
with such descriptors.&lt;/p&gt;
&lt;p&gt;Fix this by removing dev-&amp;gt;dev_next-&amp;gt;devlist from the global list in
em28xx_close_extension() before the device is freed.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;media: em28xx: fix use-after-free of dev_next-&amp;gt;devlist on disconnect&lt;/p&gt;
&lt;p&gt;When a device with has_dual_ts=1 is probed and the is_audio_only path
is taken, both dev and dev-&amp;gt;dev_next are added to the global
em28xx_devlist via em28xx_init_extension(). However, during disconnect,
em28xx_close_extension(dev) only calls list_del(&amp;amp;dev-&amp;gt;devlist), leaving
dev-&amp;gt;dev_next-&amp;gt;devlist still linked in the global list. When dev_next is
subsequently freed via kref_put(), its devlist entry becomes a dangling
pointer in em28xx_devlist. The next device probe that calls
em28xx_init_extension() triggers a list corruption BUG when list_add_tail
detects the freed node.&lt;/p&gt;
&lt;p&gt;This bug was exposed by commit a368ecde8a50 (&amp;#34;USB: core: Fix duplicate
endpoint bug by clearing reserved bits in the descriptor&amp;#34;) which clears
reserved bits in bEndpointAddress during endpoint parsing. This causes
fuzzed endpoint addresses like 0xf3 to be normalized to 0x83, which
em28xx interprets as a vendor audio endpoint, enabling the
is_audio_only + has_dual_ts code path that was previously unreachable
with such descriptors.&lt;/p&gt;
&lt;p&gt;Fix this by removing dev-&amp;gt;dev_next-&amp;gt;devlist from the global list in
em28xx_close_extension() before the device is freed.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-89891</guid>
    </item>
  </channel>
</rss>
