CVE-2026-74647: misc: fastrpc: Remove buffer from list prior to unmap operation
In the Linux kernel, the following vulnerability has been resolved:
misc: fastrpc: Remove buffer from list prior to unmap operation
fastrpcreqmunmapimpl() 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 Software
Event History
Frequently Asked Questions
What conditions are needed to trigger the race?
Multiple threads must invoke buffer unmap concurrently through fastrpc_req_munmap_impl(). The race occurs because one unmap operation can remove the buffer list entry while another unmap is still in progress.
What happens if the DSP unmap operation fails after the fix?
The buffer entry is added back to the list, allowing userspace to retry the unmap operation. Remaining buffers are also cleaned up during device release when the DSP process is torn down.