CVE-2026-98741 in Linux
Zusammenfassung
von VulDB • 19.10.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
ALSA: ua101: Ablehnung von nicht übereinstimmenden Aufnahm-/Wiedergabe-Paketgrößen
detect_usb_format() führt eine Quervergleichsprüfung zwischen bSubframeSize, bBitResolution und tSamFreq für die Aufnahme- und Wiedergabeschnittstellen durch, verknüpft jedoch niemals die wMaxPacketSize- und bNrChannels-Werte der beiden Endpunkte. Jeder Playback-URB (USB Request Block) erhält einen Puffer mit ua->playback.max_packet_bytes, während die Anzahl der darin geschriebenen Bytes aus dem Aufnahme-Strom abgeleitet wird: capture_urb_complete() berechnet Frames basierend auf dem empfangenen Aufnahmepaket und capture.frame_bytes, und start_usb_playback() sowie playback_work() multiplizieren dies mit playback.frame_bytes.
Ein Gerät, das eine große wMaxPacketSize für die Aufnahme bei wenigen Kanälen und eine kleine wMaxPacketSize für die Wiedergabe bei vielen Kanälen angibt, führt daher zu einem memset()- und memcpy()-Aufruf jenseits des Pufferendes im Playback-Puffer während open() der PCM-Knoten-Registrierung des Treibers während der Erkennungsphase (probe). usb_submit_urb() lehnt das überlange iso_frame_desc[0].length mit -EMSGSIZE ab, jedoch erst nach dem Schreibvorgang.
Solche Deskriptoren sollten bereits zur Zeit der Erkennung (Probe) zurückgewiesen werden. Echte UA-101/UA-1000-Hardware meldet proportionale Paketgrößen und ist davon nicht betroffen.
BUG: KASAN: slab-out-of-bounds in start_usb_playback (sound/usb/misc/ua101.c:586) Write of size 2048 at addr ffff8881098f3c00 by task exploit/5021 Call Trace: __asan_memset (mm/kasan/shadow.c:84) start_usb_playback (sound/usb/misc/ua101.c:586) playback_pcm_open (sound/usb/misc/ua101.c:679) snd_pcm_open_substream (sound/core/pcm_native.c:2829) snd_pcm_open (sound/core/pcm_native.c:2865 sound/core/pcm_native.c:2932) snd_pcm_playback_open (sound/core/pcm_native.c:2891) snd_open (sound/core/sound.c:166) chrdev_open (fs/char_dev.c:411) do_dentry_open (fs/open.c:996) vfs_open (fs/open.c:1101) path_openat (fs/namei.c:4837 fs/namei.c:5000) do_file_open (fs/namei.c:5029) do_sys_openat2 (fs/open.c:1417) __x64_sys_openat (fs/open.c:1423 fs/open.c:1439 fs/open.c:1434) do_syscall_64 (arch/x86/entry/syscall_64.c:61 arch/x86/entry/syscall_64.c:84) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121)
Die fehlerhafte Adresse gehört zum Objekt bei ffff8881098f3c00, das zur Cache kmalloc-192 mit einer Größe von 192 Byte gehört. Die fehlerhafte Adresse befindet sich 0 Bytes innerhalb der zugewiesenen 168-Byte-Region [ffff8881098f3c00, ffff8881098f3ca8).
If you want to get best quality of vulnerability data, you may have to visit VulDB.