ALSA: usb-audio: fix OOB write in snd_usbmidi_us122l_output()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.110, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: ALSA: usb-audio: fix OOB write in snd_usbmidi_us122l_output() The snd_usbmidi_us122l_output() picks a count of 2 on anything slower than high speed and never relates it to ep->max_transfer. The URB buffer holds exactly max_transfer bytes, so a device declaring a one byte bulk endpoint takes two bytes from snd_rawmidi_transmit(), and the memset that pads the rest computes 1 - 2 in int and wraps to SIZE_MAX. Only 0x800e and 0x800f are pinned to nine bytes. The US-122MKII at 0x0644:0x8021 falls to the default and takes usb_maxpacket(), which the USB core only clamps downward. The akai and novation output ops in this file were given the same guard recently. Do the same here.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 030a07e441296c372f946cd4065b5d831d8dc40c · fixed in 5538daf2a5cc80ac3f3e913c0db045d92d995d40; From 030a07e441296c372f946cd4065b5d831d8dc40c · fixed in a441a8e52148c91c2f2a91f42e3b9bc961a13a4b; From 030a07e441296c372f946cd4065b5d831d8dc40c · fixed in 2dae0e3a59e31f78222279d544b98e747cd1fbff; From 030a07e441296c372f946cd4065b5d831d8dc40c · fixed in 1d4add2b832b56f81bb0eab065ec35c610343018; From 030a07e441296c372f946cd4065b5d831d8dc40c · fixed in de6d252f115be887a701c09a05cdb076f3a590c9; From 030a07e441296c372f946cd4065b5d831d8dc40c · fixed in 9392a2c346762ffee8edd1ba8bac50d2e24a2ed7; From 030a07e441296c372f946cd4065b5d831d8dc40c · fixed in 9d81885d97cba7796d1f8edc88f2499c8296f5b9; From 030a07e441296c372f946cd4065b5d831d8dc40c · fixed in e4637ce34607f1733a34a57294966d26b263e626
- Linux Linux
2.6.28
- KernelLinux
From 2.6.28 · fixed in 5.10.270; From 5.11.0 · fixed in 5.15.221; From 5.16.0 · fixed in 6.1.188; From 6.2.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.110; From 6.13.0 · fixed in 6.18.51; From 6.19.0 · fixed in 7.2.5
References 8
git.kernel.org
- stable/c/5538daf2a5cc80ac3f3e913c0db045d92d995d40
- stable/c/a441a8e52148c91c2f2a91f42e3b9bc961a13a4b
- stable/c/2dae0e3a59e31f78222279d544b98e747cd1fbff
- stable/c/1d4add2b832b56f81bb0eab065ec35c610343018
- stable/c/de6d252f115be887a701c09a05cdb076f3a590c9
- stable/c/9392a2c346762ffee8edd1ba8bac50d2e24a2ed7
- stable/c/9d81885d97cba7796d1f8edc88f2499c8296f5b9
- stable/c/e4637ce34607f1733a34a57294966d26b263e626