CVE Catalog

CVE-2026-97931

HighCVSS 7.0
Published: Updated: Translated: NVD NIST

Summary

In the Linux kernel, the ALSA us122l driver did not clear the VM_MAYWRITE flag for read-buffer mappings created with PROT_READ. A process with O_RDWR access to the hwdep node could later use mprotect() to make the mapping writable, then modify the read_size field and access pages beyond the allocation. The fix clears VM_MAYWRITE for read-buffer mappings.

Risk Assessment

This can lead to kernel memory corruption, system crash, or potential privilege escalation by a local user with device access. It requires opening the hwdep node in O_RDWR mode.

Recommendation

Update the Linux kernel to a version with the fix. Restrict access to USB audio devices (hwdep nodes) to trusted users.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS