UBUNTU-CVE-2026-98265: Medium severity ubuntu/linux-hwe-edge vulnerability
In the Linux kernel, the following vulnerability has been resolved: ALSA: usb-audio: Clamp implicit feedback packet count to URB capacity dataepsetparams() allocates each data URB for exactly u->packets isochronous frames, so urb->isoframedesc[] has u->packets slots and ctx->packets is the driver's only record of that limit. For an implicit feedback sink, sndusbqueuependingoutputurbs() overwrites it with the sync source's packet count, which is calculated independently from the capture endpoint's parameters. When that count is larger, prepareplaybackurb() and preparesilenturb() can write isoframedesc[] past the allocation; their existing bounds limit payload bytes, not the descriptor index. The reproducer uses a high-speed UAC2 device declaring bInterval 1 for implicit feedback capture (8 packets) and bInterval 4 for playback (1 packet). On the first capture completion after the stream starts, it accesses seven descriptors spanning 112 bytes beyond the one-packet URB: BUG: KASAN: slab-out-of-bounds in prepareplaybackurb (sound/usb/pcm.c:1560) Write of size 4 at addr ffff88801e696ad0 by task vhcirx/178 prepareplaybackurb (sound/usb/pcm.c:1560) prepareoutboundurb (sound/usb/endpoint.c:340) sndusbqueuependingoutputurbs (sound/usb/endpoint.c:501) sndcompleteurb (sound/usb/endpoint.c:1834) usbhcdgivebackurb (drivers/usb/core/hcd.c:1657) usbhcdgivebackurb (drivers/usb/core/hcd.c:1741) vhcirxloop (drivers/usb/usbip/vhcirx.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) Record the allocated packet count per endpoint and clamp both the adopted count and the packet-size copy to it. Fold the Format Type II delimiter into urbpacks before the allocation loop so the recorded limit matches every URB.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Compensating control
In the ALSA USB-audio URB setup and playback preparation code, fold the Format Type II delimiter into urb_packs before the allocation loop so the recorded limit matches every URB; record the allocated packet count per endpoint, then clamp both the implicit-feedback adopted packet count and the packet-size copy to that count before prepare_playback_urb() or prepare_silent_urb() indexes iso_frame_desc[].
Event History
Frequently Asked Questions
Which systems are realistically exposed to this issue?
Systems using the affected Ubuntu kernel packages are exposed when they use a USB Audio Class device with an implicit-feedback playback path whose capture and playback endpoint packet counts differ. The described reproducer is a high-speed UAC2 device with a capture endpoint using bInterval 1 and a playback endpoint using bInterval 4.
What must happen for exploitation to reach the vulnerable code?
An attacker needs to cause the system to use a specially crafted or malicious USB audio device configuration with implicit feedback. The out-of-bounds descriptor access occurs after streaming starts, on the first capture completion in the described scenario; user interaction is also indicated by the supplied vector.
How can I determine whether a system is affected?
Check whether the system runs one of the listed Ubuntu kernel package families and uses a USB audio device configured for implicit feedback. Affected behavior may produce a KASAN slab-out-of-bounds report in prepare_playback_urb, with accesses beyond the allocated isochronous frame descriptor array.