CVE-2026-98741

ALSA: ua101: reject mismatched capture/playback packet sizes

State
Published
Severity
Not scored
Published
Oct 18, 2026
Updated
Oct 30, 2026
Reserved
Sep 25, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

ALSA: ua101: reject mismatched capture/playback packet sizes

detect_usb_format() cross-checks bSubframeSize, bBitResolution and tSamFreq between the capture and playback interfaces, but never relates the two endpoints' wMaxPacketSize and bNrChannels. Each playback URB gets a buffer of ua->playback.max_packet_bytes, while the number of bytes written into it is derived from the capture stream: capture_urb_complete() computes frames from the received capture packet and capture.frame_bytes, and start_usb_playback() and playback_work() multiply that by playback.frame_bytes.

A device declaring a large capture wMaxPacketSize with few capture channels and a small playback wMaxPacketSize with many playback channels therefore memset()s and memcpy()s past the end of the playback buffer, in open() of the PCM node the driver registers during probe. usb_submit_urb() rejects the over-long iso_frame_desc[0].length with -EMSGSIZE, but only after the write.

Reject such descriptors at probe time. Genuine UA-101/UA-1000 hardware declares proportional packet sizes and is unaffected.

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)

The buggy address belongs to the object at ffff8881098f3c00 which belongs to the cache kmalloc-192 of size 192 The buggy address is located 0 bytes inside of allocated 168-byte region [ffff8881098f3c00, ffff8881098f3ca8)

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 63978ab3e3e963db28093b53bb4598f2702e1ad7 to before b54976c81a6b8cae311b75be1a4cda444689bca0Affected
  • 63978ab3e3e963db28093b53bb4598f2702e1ad7 to before a2d326b3f6d470ea4bfde00245794e0dc6dbbc3dAffected
  • 63978ab3e3e963db28093b53bb4598f2702e1ad7 to before 0a6a5eecc92c13f936d8d90975116d6bbdf4f876Affected
  • 63978ab3e3e963db28093b53bb4598f2702e1ad7 to before ada5ded765f059a6e3036e69ca350449442af0fcAffected
  • 63978ab3e3e963db28093b53bb4598f2702e1ad7 to before fd3a7bf0d988b0878a1957df150edb35f81db87eAffected
  • 63978ab3e3e963db28093b53bb4598f2702e1ad7 to before eb0c7fda59cf650076f8ed5b949a6c8441aa3606Affected
  • 63978ab3e3e963db28093b53bb4598f2702e1ad7 to before 4294fe57048594a9e158b61c967bb7f943cda477Affected
  • 63978ab3e3e963db28093b53bb4598f2702e1ad7 to before 86f86e6fdedc33c5b8d38b9208b350f8accf57eeAffected
LinuxLinux
  • 2.6.34Affected
  • before 2.6.34Not affected
  • 5.10.273 through 5.10.*Not affected
  • 5.15.224 through 5.15.*Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.12.113 through 6.12.*Not affected
  • 6.18.56 through 6.18.*Not affected
  • 7.2.10 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.