{"id":33381,"date":"2026-10-06T20:31:53","date_gmt":"2026-10-06T12:31:53","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98312"},"modified":"2026-10-06T20:31:53","modified_gmt":"2026-10-06T12:31:53","slug":"cve-2026-98312","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98312","title":{"rendered":"CVE-2026-98312 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: 6fire: fix OOB"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ALSA: 6fire: fix OOB write from device-reported iso length<\/p>\n<p>usb6fire_pcm_in_urb_handler() sizes each outgoing isochronous packet as<br \/>\n(actual_length &#8211; 4) \/ (in_n_analog &lt;&lt; 2) * (out_n_analog &lt;&lt; 2) + 4, where<br \/>\nactual_length is the unsigned length the device reported for the matching<br \/>\nIN packet.  A packet completed with status 0 and actual_length buffer, a 4832-byte object from<br \/>\nkcalloc(PCM_MAX_PACKET_SIZE, PCM_N_PACKETS_PER_URB).<\/p>\n<p>Even without the wrap the result is out of bounds: at 88.2\/96 kHz the<br \/>\n4-in\/6-out scaling turns a full 420-byte IN packet into 628, so eight<br \/>\npackets span 5024 bytes of that buffer.  usb_submit_urb() rejects an<br \/>\nover-long descriptor only after the memset() and the<br \/>\nusb6fire_pcm_playback() copy of user PCM data have run.<\/p>\n<p>Guard the subtraction as the sibling usb6fire_pcm_capture() already does,<br \/>\nand limit the frame count to what fits in rt-&gt;out_packet_size, the OUT<br \/>\nendpoint&#8217;s wMaxPacketSize.  This bounds total_length by the buffer size<br \/>\nwhile keeping each packet length aligned to a whole output frame.<\/p>\n<p>  BUG: KASAN: out-of-bounds in usb6fire_pcm_in_urb_handler (sound\/usb\/6fire\/pcm.c:338)<br \/>\n  Write of size 18446744073709551456 at addr ffff88802a3d0000 by task vhci_rx\/5018<br \/>\n  Call Trace:<br \/>\n   dump_stack_lvl (lib\/dump_stack.c:94 lib\/dump_stack.c:120)<br \/>\n   print_report (mm\/kasan\/report.c:378 mm\/kasan\/report.c:482)<br \/>\n   kasan_report (mm\/kasan\/report.c:595)<br \/>\n   kasan_check_range (mm\/kasan\/generic.c:186 mm\/kasan\/generic.c:200)<br \/>\n   __asan_memset (mm\/kasan\/shadow.c:84)<br \/>\n   usb6fire_pcm_in_urb_handler (sound\/usb\/6fire\/pcm.c:338)<br \/>\n   __usb_hcd_giveback_urb (drivers\/usb\/core\/hcd.c:1657)<br \/>\n   usb_hcd_giveback_urb (drivers\/usb\/core\/hcd.c:1741)<br \/>\n   vhci_rx_loop (drivers\/usb\/usbip\/vhci_rx.c:107 drivers\/usb\/usbip\/vhci_rx.c:242)<br \/>\n   kthread (kernel\/kthread.c:436)<br \/>\n   ret_from_fork (arch\/x86\/kernel\/process.c:158)<br \/>\n   ret_from_fork_asm (arch\/x86\/entry\/entry_64.S:245)<\/p>\n<p>  Allocated by task 10:<br \/>\n   __kmalloc_cache_noprof (mm\/slub.c:5563)<br \/>\n   usb6fire_pcm_init (sound\/usb\/6fire\/pcm.c:560 sound\/usb\/6fire\/pcm.c:595)<br \/>\n   usb6fire_chip_probe (sound\/usb\/6fire\/chip.c:133)<br \/>\n   usb_probe_interface (drivers\/usb\/core\/driver.c:399)<\/p>\n<p>  The buggy address belongs to the object at ffff88802a3d0000<br \/>\n   which belongs to the cache kmalloc-8k of size 8192<br \/>\n  The buggy address is located 0 bytes inside of<br \/>\n   4832-byte region [ffff88802a3d0000, ffff88802a3d12e0)<br \/>\n  Kernel panic &#8211; not syncing: Fatal exception in interrupt<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ALSA: 6fire: fix OOB write from device-reported iso length<\/p>\n<p>usb6fire_pcm_in_urb_handler() sizes each outgoing isochronous packet as<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-33381","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/33381","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=33381"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=33381"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=33381"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}