KernelScan.io

HIGH Introduced in 2.6.28

us122l ReadMapping Bypass

CVE-2026-97931

CVSS 7.0 / 10.0 NVD

CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI7.8HIGH

01

In the Linux kernel, the following vulnerability has been resolved: ALSA: us122l: Prevent write upgrades for read mappings The hwdep mmap callback rejects read-buffer mappings that are initially writable, but leaves VM_MAYWRITE set on mappings created with PROT_READ. A process that can open the hwdep node O_RDWR can later use mprotect() to make the mapping writable. The read allocation begins with struct usb_stream. Its read_size member is used by the fault handler to decide which pages belong to the read buffer. The read VMA intentionally remains expandable because pcm_usb_stream uses mremap() after reading that size. Changing read_size first can therefore map and access pages beyond the allocation. The same member is also consumed by usb_stream_free(), where changing it can make free_pages_exact() release pages outside the allocation. Clear VM_MAYWRITE for read-buffer mappings after rejecting an initially writable VMA. This keeps the separate output-buffer mapping writable while preventing later permission upgrades.

02

Engine v0.6.0

Risk summary

A local user with access to a US-122L USB audio device's hardware-dependent interface can bypass read-only mapping protections to corrupt kernel memory, potentially leading to arbitrary code execution or system crash. Exploitation requires the specific USB audio hardware to be connected and the hwdep device node to be accessible, typically through audio group membership. The corruption can cause out-of-bounds page access and release of unrelated kernel pages during teardown.

Affectedsound/usb/usx2y/us122l.c (ALSA US-122L USB audio driver)

Vulnerability analysis

The ALSA US-122L driver's hardware-dependent mmap interface creates read-buffer mappings as read-only but fails to clear the kernel permission flag that allows later write upgrades. A local user who can open the audio device node can map the read buffer read-only, then use mprotect to make it writable, and modify the internal stream metadata that controls buffer sizing. Because the driver's page fault handler and cleanup routine both consume that size field without revalidation, corrupting it enables access to pages beyond the allocated buffer and can cause the teardown path to free unrelated kernel pages. The fix clears the write-permission flag on read-buffer mappings at creation time so they cannot be upgraded afterward, while leaving the separate output-buffer mapping writable. The vulnerable path requires a US-122L USB audio device to be connected and the corresponding hwdep device node to be accessible, typically by a local user in the audio group.

03

BranchIntroducedFixed inPatch commit
5.102.6.285.10.271cbc1f954ce67
5.152.6.285.15.222becb89036a13
6.12.6.286.1.1896a5f5a5a32c7
6.62.6.286.6.158938e8d6cee8d
6.122.6.286.12.11164a879502398
6.182.6.286.18.53d9c537b14f49
7.22.6.287.2.70eb9dd4774af
mainline2.6.287.3-rc371c610aeb177
cip/6.122.6.286.12.111-cip3264a879502398