High · published July 16, 2024
In the Linux kernel, the following vulnerability has been resolved:
misc: fastrpc: avoid double fput() on failed usercopy
If the copy back to userland fails for the FASTRPC_IOCTL_ALLOC_DMA_BUFF
ioctl(), we shouldn't assume that 'buf->dmabuf' is still valid. In fact,
dma_buf_fd() called fd_install() before, i.e. "consumed" one reference,
leaving us with none.
Calling dma_buf_put() will therefore put a reference we no longer own,
leading to a valid file descritor table entry for an already released
'file' object which is a straight use-after-free.
Simply avoid calling dma_buf_put() and rely on the process exit code to
do the necessary cleanup, if needed, i.e. if the file descriptor is
still valid.
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 5.1, < 5.4.180 | 5.4.180 |
| linux/linux_kernel | ≥ 5.5, < 5.10.101 | 5.10.101 |
| linux/linux_kernel | ≥ 5.11, < 5.15.24 | 5.15.24 |
| linux/linux_kernel | ≥ 5.16, < 5.16.10 | 5.16.10 |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |