{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2022-48821","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2024-07-16T11:38:08.901Z","datePublished":"2024-07-16T11:44:07.965Z","dateUpdated":"2026-08-05T08:52:29.928Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T08:52:29.928Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nmisc: fastrpc: avoid double fput() on failed usercopy\n\nIf the copy back to userland fails for the FASTRPC_IOCTL_ALLOC_DMA_BUFF\nioctl(), we shouldn't assume that 'buf->dmabuf' is still valid. In fact,\ndma_buf_fd() called fd_install() before, i.e. \"consumed\" one reference,\nleaving us with none.\n\nCalling dma_buf_put() will therefore put a reference we no longer own,\nleading to a valid file descritor table entry for an already released\n'file' object which is a straight use-after-free.\n\nSimply avoid calling dma_buf_put() and rely on the process exit code to\ndo the necessary cleanup, if needed, i.e. if the file descriptor is\nstill valid."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The bug is triggered via ioctl(FASTRPC_IOCTL_ALLOC_DMA_BUFF) on the local misc device /dev/fastrpc-*, not via network or adjacent packets.\nAC:L - An attacker can reliably force the copy_to_user failure after dma_buf_fd()/fd_install() by passing a read-only userspace buffer (or racing munmap/mprotect); no conditions outside attacker control are required.\nPR:L - Opening /dev/fastrpc-* and calling ALLOC_DMA_BUFF requires no capabilities in the driver; FastRPC is designed for unprivileged userspace clients (e.g. Android apps on Qualcomm devices).\nUI:N - The attacker triggers the ioctl themselves; no victim action is needed.\nS:U - Impact is a kernel file-object UAF enabling local privilege escalation within the same OS security authority, not a VM/IOMMU boundary escape.\nC:H - The dangling FD references a freed struct file, a classic UAF primitive that can be leveraged for arbitrary kernel memory disclosure.\nI:H - File UAF enables heap reuse and f_op/control-flow hijacking for arbitrary kernel writes and code execution.\nA:H - Use of the dangling FD after the erroneous dma_buf_put() can crash the kernel (oops/panic) even without full exploitation."}]}],"affected":[{"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":"6cffd79504ce040f460831030d3069fa1c99bb71","lessThan":"4e6fd2b5fcf8e7119305a6042bd92e7f2b9ed215","status":"affected","versionType":"git"},{"version":"6cffd79504ce040f460831030d3069fa1c99bb71","lessThan":"a5ce7ee5fcc07583159f54ab4af5164de00148f5","status":"affected","versionType":"git"},{"version":"6cffd79504ce040f460831030d3069fa1c99bb71","lessThan":"e4382d0a39f9a1e260d62fdc079ddae5293c037d","status":"affected","versionType":"git"},{"version":"6cffd79504ce040f460831030d3069fa1c99bb71","lessThan":"76f85c307ef9f10aa2cef1b1d5ee654c1f3345fc","status":"affected","versionType":"git"},{"version":"6cffd79504ce040f460831030d3069fa1c99bb71","lessThan":"46963e2e0629cb31c96b1d47ddd89dc3d8990b34","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":"semver"},{"version":"5.4.180","lessThanOrEqual":"5.4.*","status":"unaffected","versionType":"semver"},{"version":"5.10.101","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.24","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"5.16.10","lessThanOrEqual":"5.16.*","status":"unaffected","versionType":"semver"},{"version":"5.17","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"5.4.180"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"5.10.101"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"5.15.24"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"5.16.10"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"5.17"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/4e6fd2b5fcf8e7119305a6042bd92e7f2b9ed215"},{"url":"https://git.kernel.org/stable/c/a5ce7ee5fcc07583159f54ab4af5164de00148f5"},{"url":"https://git.kernel.org/stable/c/e4382d0a39f9a1e260d62fdc079ddae5293c037d"},{"url":"https://git.kernel.org/stable/c/76f85c307ef9f10aa2cef1b1d5ee654c1f3345fc"},{"url":"https://git.kernel.org/stable/c/46963e2e0629cb31c96b1d47ddd89dc3d8990b34"}],"title":"misc: fastrpc: avoid double fput() on failed usercopy","x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"providerMetadata":{"orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE","dateUpdated":"2024-08-03T15:25:01.487Z"},"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/4e6fd2b5fcf8e7119305a6042bd92e7f2b9ed215","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/a5ce7ee5fcc07583159f54ab4af5164de00148f5","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/e4382d0a39f9a1e260d62fdc079ddae5293c037d","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/76f85c307ef9f10aa2cef1b1d5ee654c1f3345fc","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/46963e2e0629cb31c96b1d47ddd89dc3d8990b34","tags":["x_transferred"]}]},{"metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2022-48821","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2024-09-10T16:57:59.542299Z"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2024-09-11T17:34:12.159Z"}}]}}