Overview
The snd-usb-audio driver has a quirk for Akai MPD16 controllers. Its output routine computes a loop bound from the device's advertised bulk-OUT transfer size as a signed integer. A device that advertises a tiny endpoint drives that bound negative, and the comparison against an unsigned length then always passes.
Each loop iteration appends SysEx bytes past the end of a transfer buffer that is only max_transfer bytes long. A USB device that lies about its endpoint size turns any write to the created /dev/snd/midi node into a heap out-of-bounds write with attacker-chosen length and content. The fix returns early when there is no room for a single SysEx message.
Affected products
- Linux kernel 2.6.35 through 6.6.150, 6.7 through 6.12.102, and later series before the 15 Aug 2026 stable updates
Disclosure timeline
- 15 Aug 2026
- CVE-2026-74499 published by the Linux kernel CVE team; stable fixes released