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": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"drivers/misc/fastrpc.c"
],
"versions": [
{
"version": "6cffd79504ce",
"lessThan": "4e6fd2b5fcf8",
"status": "affected",
"versionType": "git"
},
{
"version": "6cffd79504ce",
"lessThan": "a5ce7ee5fcc0",
"status": "affected",
"versionType": "git"
},
{
"version": "6cffd79504ce",
"lessThan": "e4382d0a39f9",
"status": "affected",
"versionType": "git"
},
{
"version": "6cffd79504ce",
"lessThan": "76f85c307ef9",
"status": "affected",
"versionType": "git"
},
{
"version": "6cffd79504ce",
"lessThan": "46963e2e0629",
"status": "affected",
"versionType": "git"
}
]
},
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "affected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"drivers/misc/fastrpc.c"
],
"versions": [
{
"version": "5.1",
"status": "affected"
},
{
"version": "0",
"lessThan": "5.1",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.4.180",
"lessThanOrEqual": "5.4.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.10.101",
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.15.24",
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.16.10",
"lessThanOrEqual": "5.16.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.17",
"lessThanOrEqual": "*",
"status": "unaffected",
"versionType": "original_commit_for_fix"
}
]
}
]
git.kernel.org/stable/c/46963e2e0629cb31c96b1d47ddd89dc3d8990b34
git.kernel.org/stable/c/4e6fd2b5fcf8e7119305a6042bd92e7f2b9ed215
git.kernel.org/stable/c/76f85c307ef9f10aa2cef1b1d5ee654c1f3345fc
git.kernel.org/stable/c/a5ce7ee5fcc07583159f54ab4af5164de00148f5
git.kernel.org/stable/c/e4382d0a39f9a1e260d62fdc079ddae5293c037d