<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-01T11:33:40.392211+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/cve-2026-31778</id>
    <title>CVE-2026-31778 — ALSA: caiaq: fix stack out-of-bounds read in init_card</title>
    <updated>2026-10-01T11:33:40.980105+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Linux</p>
<p>In the Linux kernel, the following vulnerability has been resolved:</p>
<p>ALSA: caiaq: fix stack out-of-bounds read in init_card</p>
<p>The loop creates a whitespace-stripped copy of the card shortname
where `len &lt; sizeof(card-&gt;id)` is used for the bounds check. Since
sizeof(card-&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.</p>
<p>When this non-null-terminated string is later passed to
snd_card_set_id() -&gt; copy_valid_id_string(), the function scans
forward with `while (*nid &amp;&amp; ...)` and reads past the end of the
stack buffer, reading the contents of the stack.</p>
<p>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:</p>
<p>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</p>
<p>The off-by-one has been present since commit bafeee5b1f8d ("ALSA:
snd_usb_caiaq: give better shortname") 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.</p>
<p>Fix this by changing the loop bound to `sizeof(card-&gt;id) - 1`,
ensuring at least one byte remains as the null terminator.</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/cve-2026-31778"/>
  </entry>
</feed>
