CVE-2026-80829

ALSA: usb-audio: fix OOB write in snd_usbmidi_novation_output()

N/A
Published: September 4, 2026 at 03:54 PM UTC
Updated: October 19, 2026 at 09:17 AM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
N/A
Exploit prediction
EPSS 0.2%

Description

In the Linux kernel, the following vulnerability has been resolved: ALSA: usb-audio: fix OOB write in snd_usbmidi_novation_output() snd_usbmidi_novation_output() lays out a two-byte header at transfer_buffer[0..1] and passes &transfer_buffer[2] together with a length of ep->max_transfer - 2 to snd_rawmidi_transmit(): count = snd_rawmidi_transmit(ep->ports[0].substream, &transfer_buffer[2], ep->max_transfer - 2); ep->max_transfer comes from the output endpoint's wMaxPacketSize via usb_maxpacket(). A malformed or malicious device can advertise a bulk OUT endpoint with a wMaxPacketSize of 1 - the USB core only clamps this value downwards - so ep->max_transfer becomes 1 and the count argument becomes -1. snd_rawmidi_transmit() passes the negative count on to __snd_rawmidi_transmit_peek(), where "if (count1 > count) count1 = count" leaves count1 negative; get_aligned_size() keeps it negative for a byte-stream substream, so the following memcpy(buffer, ..., count1) runs with a (size_t)-1 length and writes far past the transfer buffer, which was allocated with usb_alloc_coherent(ep->max_transfer). This is the same class of bug that was fixed for snd_usbmidi_akai_output() in commit 0970274613fb ("ALSA: usb-audio: fix OOB write in snd_usbmidi_akai_output()"); the novation output routine was left unguarded. Bail out when the endpoint cannot hold the two-byte header plus at least one payload byte.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

Vendor states this is fixed in 1035a8f63bae28e498b0e7b5ac91d749844a7158 (fixed)
Vendor states this is fixed in 1074c2306901b44ebcb83855583c6776e1e392ea (fixed)
Vendor states this is fixed in 558fc4485ecc704edfe7876d6cebae4738ff7ef8 (fixed)
Vendor states this is fixed in 7639ec9755d3ec0ec8cd7c0fdd2c3d3997434870 (fixed)
Vendor states this is fixed in 7f00dbddb51f4f74325cdc7c3f6b19fb3392481a (fixed)
Vendor states this is fixed in 91919b3b99ab7ce3d7dbb39fcf7c6c742a663c0c (fixed)
Vendor states this is fixed in 94e4562fcc81badd1d467ddfb88c27e4fae974c2 (fixed)
Vendor states this is fixed in 9c8212436631b0063cb021e9f58df438e3db84d0 (fixed)
Vendor states this is fixed in e9c00d7533f99aa9833c4b598f47e3b3202fdb9a (fixed)
Vendor states this is fixed in 2.6.12 (unaffected)
Vendor states this is fixed in 5.10.269 (unaffected)
Vendor states this is fixed in 5.15.220 (unaffected)
Vendor states this is fixed in 6.1.187 (unaffected)
Vendor states this is fixed in 6.12.108 (unaffected)
Vendor states this is fixed in 6.18.49 (unaffected)
Vendor states this is fixed in 6.6.156 (unaffected)
Vendor states this is fixed in 7.1.13 (unaffected)
Vendor states this is fixed in 7.2.3 (unaffected)
Vendor states this is fixed in 7.3 (unaffected)
Vendor states this is fixed in 7.3-rc1 (unaffected)

Remediation

No guide yet

No remediation guidance has been written for this CVE yet, and no fixed version or vendor advisory is recorded against it.

Quick Info

StatusRECEIVED

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card