Linux: ALSA: us122l: Prevent write upgrades for read mappings
What fixes it
- 6a5f5a5a32c78e67701f1d0f26bc87af68895604LinuxCVE List
- 938e8d6cee8d36f24669dfdcd3717e081eb32d64LinuxCVE List
- 64a87950239867682cde128020e1a47088295e5cLinuxCVE List
- 0eb9dd4774af0ac4d1fd105ef2b0a1f6cec06f2fLinuxCVE List
- 71c610aeb1770302ac9c9e0b9a4ecd37f1311928LinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
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.
Text from CVE List
Affected versions 18
- Linuxaffected: 030a07e441296c372f946cd4065b5d831d8dc40c before cbc1f954ce67d739d41d1f0757d29850353ebb6aCVE List
- Linuxaffected: 030a07e441296c372f946cd4065b5d831d8dc40c before becb89036a1320ef0a77da2d27935ac0704345c4CVE List
- Linuxaffected: 030a07e441296c372f946cd4065b5d831d8dc40c before 6a5f5a5a32c78e67701f1d0f26bc87af68895604CVE List
- Linuxaffected: 030a07e441296c372f946cd4065b5d831d8dc40c before 938e8d6cee8d36f24669dfdcd3717e081eb32d64CVE List
- Linuxaffected: 030a07e441296c372f946cd4065b5d831d8dc40c before 64a87950239867682cde128020e1a47088295e5cCVE List
- Linuxaffected: 030a07e441296c372f946cd4065b5d831d8dc40c before d9c537b14f4982f17b103e3a2cfeee4bee6bc026CVE List
- Linuxaffected: 030a07e441296c372f946cd4065b5d831d8dc40c before 0eb9dd4774af0ac4d1fd105ef2b0a1f6cec06f2fCVE List
- Linuxaffected: 030a07e441296c372f946cd4065b5d831d8dc40c before 71c610aeb1770302ac9c9e0b9a4ecd37f1311928CVE List
- Linuxaffected: 2.6.28CVE List
- Linuxunaffected: all versions before 2.6.28CVE List
- Linuxunaffected: 5.10.271 through 5.10.*CVE List
- Linuxunaffected: 5.15.222 through 5.15.*CVE List
- Linuxunaffected: 6.1.189 through 6.1.*CVE List
- Linuxunaffected: 6.6.158 through 6.6.*CVE List
- Linuxunaffected: 6.12.111 through 6.12.*CVE List
- Linuxunaffected: 6.18.53 through 6.18.*CVE List
- Linuxunaffected: 7.2.7 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 8
- git.kernel.org/stable/c/cbc1f954ce67d739d41d1f0757d29850353ebb6aReferencevia CVE List
- git.kernel.org/stable/c/becb89036a1320ef0a77da2d27935ac0704345c4Referencevia CVE List
- git.kernel.org/stable/c/6a5f5a5a32c78e67701f1d0f26bc87af68895604Referencevia CVE List
- git.kernel.org/stable/c/938e8d6cee8d36f24669dfdcd3717e081eb32d64Referencevia CVE List
- git.kernel.org/stable/c/64a87950239867682cde128020e1a47088295e5cReferencevia CVE List
- git.kernel.org/stable/c/d9c537b14f4982f17b103e3a2cfeee4bee6bc026Referencevia CVE List
- git.kernel.org/stable/c/0eb9dd4774af0ac4d1fd105ef2b0a1f6cec06f2fReferencevia CVE List
- git.kernel.org/stable/c/71c610aeb1770302ac9c9e0b9a4ecd37f1311928Referencevia CVE List