PT-2026-85656 · Linux · Linux

CVE-2026-80815

·

Published

2026-09-04

·

Updated

2026-09-04

None

No severity ratings or metrics are available. When they are, we'll update the corresponding info on the page.
In the Linux kernel, the following vulnerability has been resolved:
ALSA: scarlett2: Use a private URB for the notification endpoint
scarlett2 init notify() used mixer->urb, which snd usb mixer status create() allocates for the UAC2 status interrupt endpoint and mixer.c manages. On a device with that endpoint, the "already in use" check fires on the status URB and returns 0 for success without doing anything. No notification URB is submitted, and cmd done is left zeroed because it is initialised past that check and nowhere else. scarlett2 usb init() then issues SCARLETT2 USB INIT 1 and wait for completion timeout() would crash adding to the zeroed wait.head.
Use a separate URB in scarlett2 data, as done for FCP, and initialise cmd done in scarlett2 init private(). mixer.c was also freeing the URB in snd usb mixer free() and resubmitting it in snd usb mixer activate(), so scarlett2 must now do both: add scarlett2 cleanup urb(), called from private free and private suspend, and a private resume callback to re-establish the URB after resume. scarlett2 init notify() is reached from there, and the URB kill path in scarlett2 notify() completes cmd done, leaving a stale count that would satisfy the next command's wait before the device ACKs. Use reinit completion() to clear it.
Also free the URB if the transfer buffer allocation fails, and both if usb submit urb() fails. Move scarlett2 init notify() up next to scarlett2 cleanup urb() so scarlett2 init private() can reference it without a forward declaration.
Found an issue in the description? Have something to add? Feel free to write us 👾

Related Identifiers

CVE-2026-80815

Affected Products

Linux