{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-98741","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-09-25T10:25:14.367Z","datePublished":"2026-10-18T15:47:26.283Z","dateUpdated":"2026-10-30T12:39:15.151Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-10-30T12:39:15.151Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: ua101: reject mismatched capture/playback packet sizes\n\ndetect_usb_format() cross-checks bSubframeSize, bBitResolution and\ntSamFreq between the capture and playback interfaces, but never relates\nthe two endpoints' wMaxPacketSize and bNrChannels.  Each playback URB\ngets a buffer of ua->playback.max_packet_bytes, while the number of\nbytes written into it is derived from the capture stream:\ncapture_urb_complete() computes frames from the received capture packet\nand capture.frame_bytes, and start_usb_playback() and playback_work()\nmultiply that by playback.frame_bytes.\n\nA device declaring a large capture wMaxPacketSize with few capture\nchannels and a small playback wMaxPacketSize with many playback channels\ntherefore memset()s and memcpy()s past the end of the playback buffer,\nin open() of the PCM node the driver registers during probe.\nusb_submit_urb() rejects the over-long iso_frame_desc[0].length with\n-EMSGSIZE, but only after the write.\n\nReject such descriptors at probe time.  Genuine UA-101/UA-1000 hardware\ndeclares proportional packet sizes and is unaffected.\n\n  BUG: KASAN: slab-out-of-bounds in start_usb_playback (sound/usb/misc/ua101.c:586)\n  Write of size 2048 at addr ffff8881098f3c00 by task exploit/5021\n  Call Trace:\n   __asan_memset (mm/kasan/shadow.c:84)\n   start_usb_playback (sound/usb/misc/ua101.c:586)\n   playback_pcm_open (sound/usb/misc/ua101.c:679)\n   snd_pcm_open_substream (sound/core/pcm_native.c:2829)\n   snd_pcm_open (sound/core/pcm_native.c:2865 sound/core/pcm_native.c:2932)\n   snd_pcm_playback_open (sound/core/pcm_native.c:2891)\n   snd_open (sound/core/sound.c:166)\n   chrdev_open (fs/char_dev.c:411)\n   do_dentry_open (fs/open.c:996)\n   vfs_open (fs/open.c:1101)\n   path_openat (fs/namei.c:4837 fs/namei.c:5000)\n   do_file_open (fs/namei.c:5029)\n   do_sys_openat2 (fs/open.c:1417)\n   __x64_sys_openat (fs/open.c:1423 fs/open.c:1439 fs/open.c:1434)\n   do_syscall_64 (arch/x86/entry/syscall_64.c:61 arch/x86/entry/syscall_64.c:84)\n   entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121)\n\n  The buggy address belongs to the object at ffff8881098f3c00\n   which belongs to the cache kmalloc-192 of size 192\n  The buggy address is located 0 bytes inside of\n   allocated 168-byte region [ffff8881098f3c00, ffff8881098f3ca8)"}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["sound/usb/misc/ua101.c"],"versions":[{"version":"63978ab3e3e963db28093b53bb4598f2702e1ad7","lessThan":"b54976c81a6b8cae311b75be1a4cda444689bca0","status":"affected","versionType":"git"},{"version":"63978ab3e3e963db28093b53bb4598f2702e1ad7","lessThan":"a2d326b3f6d470ea4bfde00245794e0dc6dbbc3d","status":"affected","versionType":"git"},{"version":"63978ab3e3e963db28093b53bb4598f2702e1ad7","lessThan":"0a6a5eecc92c13f936d8d90975116d6bbdf4f876","status":"affected","versionType":"git"},{"version":"63978ab3e3e963db28093b53bb4598f2702e1ad7","lessThan":"ada5ded765f059a6e3036e69ca350449442af0fc","status":"affected","versionType":"git"},{"version":"63978ab3e3e963db28093b53bb4598f2702e1ad7","lessThan":"fd3a7bf0d988b0878a1957df150edb35f81db87e","status":"affected","versionType":"git"},{"version":"63978ab3e3e963db28093b53bb4598f2702e1ad7","lessThan":"eb0c7fda59cf650076f8ed5b949a6c8441aa3606","status":"affected","versionType":"git"},{"version":"63978ab3e3e963db28093b53bb4598f2702e1ad7","lessThan":"4294fe57048594a9e158b61c967bb7f943cda477","status":"affected","versionType":"git"},{"version":"63978ab3e3e963db28093b53bb4598f2702e1ad7","lessThan":"86f86e6fdedc33c5b8d38b9208b350f8accf57ee","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["sound/usb/misc/ua101.c"],"versions":[{"version":"2.6.34","status":"affected"},{"version":"0","lessThan":"2.6.34","status":"unaffected","versionType":"semver"},{"version":"5.10.273","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.224","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.191","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.160","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.12.113","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.18.56","lessThanOrEqual":"6.18.*","status":"unaffected","versionType":"semver"},{"version":"7.2.10","lessThanOrEqual":"7.2.*","status":"unaffected","versionType":"semver"},{"version":"7.3","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.34","versionEndExcluding":"5.10.273"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.34","versionEndExcluding":"5.15.224"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.34","versionEndExcluding":"6.1.191"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.34","versionEndExcluding":"6.6.160"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.34","versionEndExcluding":"6.12.113"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.34","versionEndExcluding":"6.18.56"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.34","versionEndExcluding":"7.2.10"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.34","versionEndExcluding":"7.3"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/b54976c81a6b8cae311b75be1a4cda444689bca0"},{"url":"https://git.kernel.org/stable/c/a2d326b3f6d470ea4bfde00245794e0dc6dbbc3d"},{"url":"https://git.kernel.org/stable/c/0a6a5eecc92c13f936d8d90975116d6bbdf4f876"},{"url":"https://git.kernel.org/stable/c/ada5ded765f059a6e3036e69ca350449442af0fc"},{"url":"https://git.kernel.org/stable/c/fd3a7bf0d988b0878a1957df150edb35f81db87e"},{"url":"https://git.kernel.org/stable/c/eb0c7fda59cf650076f8ed5b949a6c8441aa3606"},{"url":"https://git.kernel.org/stable/c/4294fe57048594a9e158b61c967bb7f943cda477"},{"url":"https://git.kernel.org/stable/c/86f86e6fdedc33c5b8d38b9208b350f8accf57ee"}],"title":"ALSA: ua101: reject mismatched capture/playback packet sizes","x_generator":{"engine":"bippy-1.2.0"}}}}