Description
In the Linux kernel, the following vulnerability has been resolved: misc: fastrpc: Remove buffer from list prior to unmap operation fastrpc_req_munmap_impl() is called to unmap any buffer. The buffer is getting removed from the list after it is unmapped from DSP. This can create potential race conditions if multiple threads invoke unmap concurrently, where one thread may remove the entry from the list while another thread's unmap operation is still ongoing. Fix this by removing the buffer entry from the list before calling the unmap operation. If the unmap fails, the entry is re-added to the list so that userspace can retry the unmap, or alternatively, the buffer will be cleaned up during device release when the DSP process is torn down and all DSP-side mappings are freed along with remaining buffers in the list.
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
2419e55e532de14fdf336e09e453aa2831c73a25 to < 1edb654b2b41baee2ab5cf418baaf6e57dfbd802affected2419e55e532de14fdf336e09e453aa2831c73a25 to < 4716c23c206a2f99ca54ebfdd8b5ba9dd0102240affected2419e55e532de14fdf336e09e453aa2831c73a25 to < 99f8de36c84cb9b872157aa6c3578c2480cee4b8affected2419e55e532de14fdf336e09e453aa2831c73a25 to < 97273624f7b356eaf8261609a75cfcb8738a165aaffected2419e55e532de14fdf336e09e453aa2831c73a25 to < fe70329055977fc1e8dc6291318d0dd75470795aaffected2419e55e532de14fdf336e09e453aa2831c73a25 to < 9bf22a7d950cec2d1efeca7f16bb20fcca84c36aaffected2419e55e532de14fdf336e09e453aa2831c73a25 to < 0beaa9bd7eb10d9b5e6352ed5161f3f3bbd4c3c5affected2419e55e532de14fdf336e09e453aa2831c73a25 to < 6102ceb4eab845743ee57acd3863fbd06e93c927affected
Linux Linux
Default version status: affected
5.5affected0 to < 5.5unaffected5.10.267 to ≤ 5.10.*unaffected5.15.218 to ≤ 5.15.*unaffected6.1.185 to ≤ 6.1.*unaffected6.6.152 to ≤ 6.6.*unaffected6.12.104 to ≤ 6.12.*unaffected6.18.45 to ≤ 6.18.*unaffected7.1.9 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/1edb654b2b41baee2ab5cf418baaf6e57dfbd802 ↗
- https://git.kernel.org/stable/c/4716c23c206a2f99ca54ebfdd8b5ba9dd0102240 ↗
- https://git.kernel.org/stable/c/99f8de36c84cb9b872157aa6c3578c2480cee4b8 ↗
- https://git.kernel.org/stable/c/97273624f7b356eaf8261609a75cfcb8738a165a ↗
- https://git.kernel.org/stable/c/fe70329055977fc1e8dc6291318d0dd75470795a ↗
- https://git.kernel.org/stable/c/9bf22a7d950cec2d1efeca7f16bb20fcca84c36a ↗
- https://git.kernel.org/stable/c/0beaa9bd7eb10d9b5e6352ed5161f3f3bbd4c3c5 ↗
- https://git.kernel.org/stable/c/6102ceb4eab845743ee57acd3863fbd06e93c927 ↗