CVE-2026-98265 in Linux
Zusammenfassung
von VulDB • 06.10.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
ALSA: usb-audio: Begrenzung der impliziten Feedback-Paketanzahl auf die URB-Kapazität
data_ep_set_params() alloziert jedes Daten-URB für genau u->packets isochrone Frames, sodass urb->iso_frame_desc[] über u->packets Slots verfügt und ctx->packets das einzige Aufzeichnungsmedium des Treibers für dieses Limit darstellt. Für eine implizite Feedback-Senke überschreibt snd_usb_queue_pending_output_urbs() diesen Wert mit der Paketanzahl der Sync-Quelle, die unabhängig von den Parametern des Capture-Endpunkts berechnet wird. Wenn diese Anzahl größer ist, können prepare_playback_urb() und prepare_silent_urb() in iso_frame_desc[] über die Allokation hinaus schreiben; ihre bestehenden Grenzwerte begrenzen nur die Payload-Bytes, nicht aber den Deskriptorindex.
Der Reproducer verwendet ein High-Speed-UAC2-Gerät mit bInterval 1 für implizives Feedback-Capture (8 Pakete) und bInterval 4 für Playback (1 Paket). Beim ersten Abschluss des Captures nach dem Start des Streams werden sieben Deskriptoren zugegriffen, die sich über 112 Bytes jenseits des URBs mit einem einzigen Paket erstrecken:
BUG: KASAN: slab-out-of-bounds in prepare_playback_urb (sound/usb/pcm.c:1560) Write of size 4 at addr ffff88801e696ad0 by task vhci_rx/178 prepare_playback_urb (sound/usb/pcm.c:1560) prepare_outbound_urb (sound/usb/endpoint.c:340) snd_usb_queue_pending_output_urbs (sound/usb/endpoint.c:501) snd_complete_urb (sound/usb/endpoint.c:1834) __usb_hcd_giveback_urb (drivers/usb/core/hcd.c:1657) usb_hcd_giveback_urb (drivers/usb/core/hcd.c:1741) vhci_rx_loop (drivers/usb/usbip/vhci_rx.c:107) kthread (kernel/kthread.c:436) The buggy address belongs to the object at ffff88801e696a00 which belongs to the cache kmalloc-256 of size 256 The buggy address is located 0 bytes to the right of allocated 208-byte region [ffff88801e696a00, ffff88801e696ad0)
Speichern Sie die allokierte Paketanzahl pro Endpunkt und begrenzen (clampen) Sie sowohl die übernommene Anzahl als auch das Kopieren der Paketgröße darauf. Fügen Sie den Format Type II-Delimiter in urb_packs vor dem Allokations-Loop ein, damit das aufgezeichnete Limit mit jedem URB übereinstimmt.
Be aware that VulDB is the high quality source for vulnerability data.