<?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>Tue, 29 Sep 2026 23:44:46 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-31778 — ALSA: caiaq: fix stack out-of-bounds read in init_card</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-31778</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;ALSA: caiaq: fix stack out-of-bounds read in init_card&lt;/p&gt;
&lt;p&gt;The loop creates a whitespace-stripped copy of the card shortname
where `len &amp;lt; sizeof(card-&amp;gt;id)` is used for the bounds check. Since
sizeof(card-&amp;gt;id) is 16 and the local id buffer is also 16 bytes,
writing 16 non-space characters fills the entire buffer,
overwriting the terminating nullbyte.&lt;/p&gt;
&lt;p&gt;When this non-null-terminated string is later passed to
snd_card_set_id() -&amp;gt; copy_valid_id_string(), the function scans
forward with `while (*nid &amp;amp;&amp;amp; ...)` and reads past the end of the
stack buffer, reading the contents of the stack.&lt;/p&gt;
&lt;p&gt;A USB device with a product name containing many non-ASCII, non-space
characters (e.g. multibyte UTF-8) will reliably trigger this as follows:&lt;/p&gt;
&lt;p&gt;BUG: KASAN: stack-out-of-bounds in copy_valid_id_string
       sound/core/init.c:696 [inline]
  BUG: KASAN: stack-out-of-bounds in snd_card_set_id_no_lock+0x698/0x74c
       sound/core/init.c:718&lt;/p&gt;
&lt;p&gt;The off-by-one has been present since commit bafeee5b1f8d (&amp;#34;ALSA:
snd_usb_caiaq: give better shortname&amp;#34;) from June 2009 (v2.6.31-rc1),
which first introduced this whitespace-stripping loop. The original
code never accounted for the null terminator when bounding the copy.&lt;/p&gt;
&lt;p&gt;Fix this by changing the loop bound to `sizeof(card-&amp;gt;id) - 1`,
ensuring at least one byte remains as the null terminator.&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;ALSA: caiaq: fix stack out-of-bounds read in init_card&lt;/p&gt;
&lt;p&gt;The loop creates a whitespace-stripped copy of the card shortname
where `len &amp;lt; sizeof(card-&amp;gt;id)` is used for the bounds check. Since
sizeof(card-&amp;gt;id) is 16 and the local id buffer is also 16 bytes,
writing 16 non-space characters fills the entire buffer,
overwriting the terminating nullbyte.&lt;/p&gt;
&lt;p&gt;When this non-null-terminated string is later passed to
snd_card_set_id() -&amp;gt; copy_valid_id_string(), the function scans
forward with `while (*nid &amp;amp;&amp;amp; ...)` and reads past the end of the
stack buffer, reading the contents of the stack.&lt;/p&gt;
&lt;p&gt;A USB device with a product name containing many non-ASCII, non-space
characters (e.g. multibyte UTF-8) will reliably trigger this as follows:&lt;/p&gt;
&lt;p&gt;BUG: KASAN: stack-out-of-bounds in copy_valid_id_string
       sound/core/init.c:696 [inline]
  BUG: KASAN: stack-out-of-bounds in snd_card_set_id_no_lock+0x698/0x74c
       sound/core/init.c:718&lt;/p&gt;
&lt;p&gt;The off-by-one has been present since commit bafeee5b1f8d (&amp;#34;ALSA:
snd_usb_caiaq: give better shortname&amp;#34;) from June 2009 (v2.6.31-rc1),
which first introduced this whitespace-stripping loop. The original
code never accounted for the null terminator when bounding the copy.&lt;/p&gt;
&lt;p&gt;Fix this by changing the loop bound to `sizeof(card-&amp;gt;id) - 1`,
ensuring at least one byte remains as the null terminator.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-31778</guid>
    </item>
  </channel>
</rss>
