CVE-2026-98836 json
ALSA: line6: reject oversized playback packets
published 2026-10-18 21 d ago modified 2026-10-30 9 d ago also EUVD-2026-103776
- cvss
- —
- not scored
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 7%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
ALSA: line6: reject oversized playback packets
Each playback URB is handed a slice of out.buffer that is exactly LINE6_ISO_PACKETS * max_packet_size_out bytes, sized from the OUT endpoint, but the number of bytes written into that slice is never compared against it.
submit_audio_out_urb() takes the frame count from prev_fsize, which audio_in_callback() derived from the *IN* endpoint's received packet length, and rescales it with the playback frame size; when prev_fsize is still zero it synthesizes a length from the sample rate instead. On a device declaring a large IN wMaxPacketSize and a small OUT wMaxPacketSize, the resulting memcpy(), or the memset() when the playback stream is idle, runs past its slice and, as the reproducer below shows, beyond the allocation.
usb_submit_urb() is not a backstop. max_packet_size_out comes from usb_maxpacket(), which returns only the low 11 bits of wMaxPacketSize, while USB core validates a high-speed isochronous length against that base scaled by usb_endpoint_maxp_mult(). A length of up to three times the allocated slice is therefore accepted, and even a rejected URB is only rejected after the write.
Reject a packet that does not fit the slice the driver allocated for it. Clamping it instead would silently shorten the capture-derived rate feedback and desynchronize the two streams.
BUG: KASAN: slab-out-of-bounds in submit_audio_out_urb (sound/usb/line6/playback.c:229) Write of size 1024 at addr ffff888100bbd400 by task kworker/1:2/5002 Workqueue: events line6_startup_work Call Trace: __asan_memcpy (mm/kasan/shadow.c:106) submit_audio_out_urb (sound/usb/line6/playback.c:229) line6_submit_audio_out_all_urbs (sound/usb/line6/playback.c:291) line6_stream_start (sound/usb/line6/pcm.c:194) line6_pcm_acquire (sound/usb/line6/pcm.c:337) line6_startup_work (sound/usb/line6/driver.c:728) process_one_work (kernel/workqueue.c:3396) worker_thread (kernel/workqueue.c:3479 kernel/workqueue.c:3560) kthread (kernel/kthread.c:436) ret_from_fork (arch/x86/kernel/process.c:158) ret_from_fork_asm (arch/x86/entry/entry_64.S:245)
The buggy address belongs to the object at ffff888100bbd400 which belongs to the cache kmalloc-256 of size 256 The buggy address is located 0 bytes inside of allocated 256-byte region [ffff888100bbd400, ffff888100bbd500)
Patch / fix
- Linux Linux 5.10.273, 5.15.224, 6.1.191, 6.6.160, 6.12.113, 6.18.56, 7.2.10, 7.3
- linux Debian 13 6.12.113-1
- linux Debian 14 7.2.10-1
- linux-6.12 Debian 12 6.12.113-1~deb12u1
debian advisories DEBIAN-CVE-2026-98836
- kernel-source Linux Micro 6.0 6.4.0-159998.55.1
- kernel-default Linux Micro 6.0 6.4.0-159998.55.1
- kernel-kvmsmall Linux Micro 6.0 6.4.0-159998.55.1
- kernel-default-base Linux Micro 6.0 6.4.0-159998.55.1.159998.21.42
- kernel-64kb SLE Module for Basesystem 15 SP7 6.4.0-150700.53.90.1
- kernel-syms SLE Module for Development Tools 15 SP7 6.4.0-150700.53.90.1
- kernel-azure SLE Module for Public Cloud 15 SP7 6.4.0-150700.53.90.1
- kernel-source SLE Module for Development Tools 15 SP7, SLE Module for Basesystem 15 SP7 6.4.0-150700.53.90.1
suse advisories SUSE-SU-2026:24550-1SUSE-SU-2026:5091-1
- git.kernel.org/stable/c/48c76820dd8858ce60a6e42519141ebcf3dfeebf commit
- git.kernel.org/stable/c/7f31587e26e1d4735924bc324e7fa506d85de150 commit
- git.kernel.org/stable/c/e3b68b1d92f279e203923dc8bf45c8860e5b5985 commit
- git.kernel.org/stable/c/933d8ac23388eb208ea195231d682dce0bec86ca commit
- git.kernel.org/stable/c/a84371be89c39ccc46c7af8b9eb15c448df9265f commit
- git.kernel.org/stable/c/3f75da1e4ee699f6650d23d6897cf443b01856c7 commit
- git.kernel.org/stable/c/b78748424f29f07d310484b2b36afdececa74389 commit
- git.kernel.org/stable/c/61b0a5a114fa4552892da5c0ff2f42e63bf08c6b commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-98836 updated cvss 6.2
kernel: ALSA: line6: reject oversized playback packets
-
Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 more Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 more Red Hat Enterprise Linux 10 kernel Red Hat OpenShift Container Platform 4 openshift/ose-rhel-coreos-8, openshift/ose-rhel-coreos-9 Red Hat OpenShift Container Platform 5 openshift/ose-rhel-coreos-9affected: no fix available “Fix deferred”
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 morenot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
0.18% chance of exploitation in the next 30 days, higher than 7% of all scored CVEs (FIRST EPSS, 2026-11-08).
Affected products
- Linux Linux
Classification
- Technology feeds
References
- git.kernel.org /stable/c/48c76820dd8858ce60a6e42519141ebcf3dfeebf
- git.kernel.org /stable/c/7f31587e26e1d4735924bc324e7fa506d85de150
- git.kernel.org /stable/c/e3b68b1d92f279e203923dc8bf45c8860e5b5985
- git.kernel.org /stable/c/933d8ac23388eb208ea195231d682dce0bec86ca
- git.kernel.org /stable/c/a84371be89c39ccc46c7af8b9eb15c448df9265f
- git.kernel.org /stable/c/3f75da1e4ee699f6650d23d6897cf443b01856c7
- git.kernel.org /stable/c/b78748424f29f07d310484b2b36afdececa74389
- git.kernel.org /stable/c/61b0a5a114fa4552892da5c0ff2f42e63bf08c6b
Sources
- CVE List CVE-2026-98836
- NVD CVE-2026-98836
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.