{"id":17319,"date":"2026-09-05T02:30:59","date_gmt":"2026-09-04T18:30:59","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-80815"},"modified":"2026-09-05T02:30:59","modified_gmt":"2026-09-04T18:30:59","slug":"cve-2026-80815","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-80815","title":{"rendered":"CVE-2026-80815 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: scarlett2: Use"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ALSA: scarlett2: Use a private URB for the notification endpoint<\/p>\n<p>scarlett2_init_notify() used mixer-&gt;urb, which<br \/>\nsnd_usb_mixer_status_create() allocates for the UAC2 status interrupt<br \/>\nendpoint and mixer.c manages. On a device with that endpoint, the<br \/>\n&#8220;already in use&#8221; check fires on the status URB and returns 0 for<br \/>\nsuccess without doing anything. No notification URB is submitted, and<br \/>\ncmd_done is left zeroed because it is initialised past that check and<br \/>\nnowhere else. scarlett2_usb_init() then issues SCARLETT2_USB_INIT_1<br \/>\nand wait_for_completion_timeout() would crash adding to the zeroed<br \/>\nwait.head.<\/p>\n<p>Use a separate URB in scarlett2_data, as done for FCP, and initialise<br \/>\ncmd_done in scarlett2_init_private(). mixer.c was also freeing the URB<br \/>\nin snd_usb_mixer_free() and resubmitting it in<br \/>\nsnd_usb_mixer_activate(), so scarlett2 must now do both: add<br \/>\nscarlett2_cleanup_urb(), called from private_free and private_suspend,<br \/>\nand a private_resume callback to re-establish the URB after resume.<br \/>\nscarlett2_init_notify() is reached from there, and the URB kill path<br \/>\nin scarlett2_notify() completes cmd_done, leaving a stale count that<br \/>\nwould satisfy the next command&#8217;s wait before the device ACKs. Use<br \/>\nreinit_completion() to clear it.<\/p>\n<p>Also free the URB if the transfer buffer allocation fails, and both if<br \/>\nusb_submit_urb() fails. Move scarlett2_init_notify() up next to<br \/>\nscarlett2_cleanup_urb() so scarlett2_init_private() can reference it<br \/>\nwithout a forward declaration.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ALSA: scarlett2: Use a private URB for the notification endpoint<\/p>\n<p>scarlett2_init_notify() used mixer-&gt;urb, which<br \/>\nsnd_usb_mixer_stat<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-17319","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/17319","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=17319"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=17319"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=17319"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}