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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
030a07e441296c372f946cd4065b5d831d8dc40c to < cbc1f954ce67d739d41d1f0757d29850353ebb6aaffected030a07e441296c372f946cd4065b5d831d8dc40c to < becb89036a1320ef0a77da2d27935ac0704345c4affected030a07e441296c372f946cd4065b5d831d8dc40c to < 6a5f5a5a32c78e67701f1d0f26bc87af68895604affected030a07e441296c372f946cd4065b5d831d8dc40c to < 938e8d6cee8d36f24669dfdcd3717e081eb32d64affected030a07e441296c372f946cd4065b5d831d8dc40c to < 64a87950239867682cde128020e1a47088295e5caffected030a07e441296c372f946cd4065b5d831d8dc40c to < d9c537b14f4982f17b103e3a2cfeee4bee6bc026affected030a07e441296c372f946cd4065b5d831d8dc40c to < 0eb9dd4774af0ac4d1fd105ef2b0a1f6cec06f2faffected030a07e441296c372f946cd4065b5d831d8dc40c to < 71c610aeb1770302ac9c9e0b9a4ecd37f1311928affected
Linux Linux
Default version status: affected
2.6.28affected0 to < 2.6.28unaffected5.10.271 to ≤ 5.10.*unaffected5.15.222 to ≤ 5.15.*unaffected6.1.189 to ≤ 6.1.*unaffected6.6.158 to ≤ 6.6.*unaffected6.12.111 to ≤ 6.12.*unaffected6.18.53 to ≤ 6.18.*unaffected7.2.7 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
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 ↗