<?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 07:22:11 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-80973 — ALSA: 6fire: bound the MIDI event length from the device</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-80973</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: 6fire: bound the MIDI event length from the device&lt;/p&gt;
&lt;p&gt;usb6fire_comm_receiver_handler() forwards a MIDI event using a length
byte the device supplies, with no bound and no check that the transfer
delivered that many bytes:&lt;/p&gt;
&lt;p&gt;if (!urb-&amp;gt;status) {
		if (rt-&amp;gt;receiver_buffer[0] == 0x10) /* midi in event */
			if (midi_rt)
				midi_rt-&amp;gt;in_received(midi_rt,
						rt-&amp;gt;receiver_buffer + 2,
						rt-&amp;gt;receiver_buffer[1]);
	}&lt;/p&gt;
&lt;p&gt;receiver_buffer is a 64-byte kzalloc() buffer (COMM_RECEIVER_BUFSIZE), so
only 62 bytes follow the two-byte header.  receiver_buffer[1] is a u8 the
device chooses, so a device that answers with 0x10 and a length of 0xFF
makes snd_rawmidi_receive() read 255 bytes starting two bytes into a
64-byte object.  The bytes past the buffer are handed to userspace
through the rawmidi read path.&lt;/p&gt;
&lt;p&gt;urb-&amp;gt;actual_length is not consulted either, so a short transfer leaves
both the type byte and the length byte at their previous values and the
handler acts on stale data.&lt;/p&gt;
&lt;p&gt;The receiver URB is submitted from usb6fire_comm_init() at probe, so the
read happens on plug with no user action; forwarding to userspace also
needs a MIDI input substream open, since usb6fire_midi_in_received()
only calls snd_rawmidi_receive() when rt-&amp;gt;in is set.&lt;/p&gt;
&lt;p&gt;KASAN on 7.2.0-rc5 (arm64), single packet from an emulated device:&lt;/p&gt;
&lt;p&gt;BUG: KASAN: slab-out-of-bounds in snd_rawmidi_receive
  Read of size 255 at addr ffff000009f64682 by task bash/…&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: 6fire: bound the MIDI event length from the device&lt;/p&gt;
&lt;p&gt;usb6fire_comm_receiver_handler() forwards a MIDI event using a length
byte the device supplies, with no bound and no check that the transfer
delivered that many bytes:&lt;/p&gt;
&lt;p&gt;if (!urb-&amp;gt;status) {
		if (rt-&amp;gt;receiver_buffer[0] == 0x10) /* midi in event */
			if (midi_rt)
				midi_rt-&amp;gt;in_received(midi_rt,
						rt-&amp;gt;receiver_buffer + 2,
						rt-&amp;gt;receiver_buffer[1]);
	}&lt;/p&gt;
&lt;p&gt;receiver_buffer is a 64-byte kzalloc() buffer (COMM_RECEIVER_BUFSIZE), so
only 62 bytes follow the two-byte header.  receiver_buffer[1] is a u8 the
device chooses, so a device that answers with 0x10 and a length of 0xFF
makes snd_rawmidi_receive() read 255 bytes starting two bytes into a
64-byte object.  The bytes past the buffer are handed to userspace
through the rawmidi read path.&lt;/p&gt;
&lt;p&gt;urb-&amp;gt;actual_length is not consulted either, so a short transfer leaves
both the type byte and the length byte at their previous values and the
handler acts on stale data.&lt;/p&gt;
&lt;p&gt;The receiver URB is submitted from usb6fire_comm_init() at probe, so the
read happens on plug with no user action; forwarding to userspace also
needs a MIDI input substream open, since usb6fire_midi_in_received()
only calls snd_rawmidi_receive() when rt-&amp;gt;in is set.&lt;/p&gt;
&lt;p&gt;KASAN on 7.2.0-rc5 (arm64), single packet from an emulated device:&lt;/p&gt;
&lt;p&gt;BUG: KASAN: slab-out-of-bounds in snd_rawmidi_receive
  Read of size 255 at addr ffff000009f64682 by task bash/…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-80973</guid>
    </item>
  </channel>
</rss>
