{"id":"CVE-2022-48872","state":"PUBLISHED","title":"misc: fastrpc: Fix use-after-free race condition for maps","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nmisc: fastrpc: Fix use-after-free race condition for maps\n\nIt is possible that in between calling fastrpc_map_get() until\nmap->fl->lock is taken in fastrpc_free_map(), another thread can call\nfastrpc_map_lookup() and get a reference to a map that is about to be\ndeleted.\n\nRewrite fastrpc_map_get() to only increase the reference count of a map\nif it's non-zero. Propagate this to callers so they can know if a map is\nabout to be deleted.\n\nFixes this warning:\nrefcount_t: addition on 0; use-after-free.\nWARNING: CPU: 5 PID: 10100 at lib/refcount.c:25 refcount_warn_saturate\n...\nCall trace:\n refcount_warn_saturate\n [fastrpc_map_get inlined]\n [fastrpc_map_lookup inlined]\n fastrpc_map_create\n fastrpc_internal_invoke\n fastrpc_device_ioctl\n __arm64_sys_ioctl\n invoke_syscall","publishedAt":"2024-08-21T06:10:02.954Z","updatedAt":"2026-08-05T08:52:43.003Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"c68cfb718c8f97b7f7a50ed66be5feb42d0c8988","status":"affected","lessThan":"556dfdb226ce1e5231d8836159b23f8bb0395bf4","versionType":"git"},{"version":"c68cfb718c8f97b7f7a50ed66be5feb42d0c8988","status":"affected","lessThan":"b171d0d2cf1b8387c72c8d325c5d5746fa271e39","versionType":"git"},{"version":"c68cfb718c8f97b7f7a50ed66be5feb42d0c8988","status":"affected","lessThan":"61a0890cb95afec5c8a2f4a879de2b6220984ef1","versionType":"git"},{"version":"c68cfb718c8f97b7f7a50ed66be5feb42d0c8988","status":"affected","lessThan":"079c78c68714f7d8d58e66c477b0243b31806907","versionType":"git"},{"version":"c68cfb718c8f97b7f7a50ed66be5feb42d0c8988","status":"affected","lessThan":"96b328d119eca7563c1edcc4e1039a62e6370ecb","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/misc/fastrpc.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.1","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.1","versionType":"semver"},{"version":"5.4.230","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.165","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.90","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.8","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/misc/fastrpc.c"]}],"references":["https://git.kernel.org/stable/c/556dfdb226ce1e5231d8836159b23f8bb0395bf4","https://git.kernel.org/stable/c/b171d0d2cf1b8387c72c8d325c5d5746fa271e39","https://git.kernel.org/stable/c/61a0890cb95afec5c8a2f4a879de2b6220984ef1","https://git.kernel.org/stable/c/079c78c68714f7d8d58e66c477b0243b31806907","https://git.kernel.org/stable/c/96b328d119eca7563c1edcc4e1039a62e6370ecb"],"weaknesses":[],"ingestedAt":"2026-10-29T20:05:26.763Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2022/48xxx/CVE-2022-48872.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2022-48872","state":"PUBLISHED","datePublished":"2024-08-21T06:10:02.954Z","dateUpdated":"2026-08-05T08:52:43.003Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-07-16T11:38:08.921Z"},"containers":{"cna":{"title":"misc: fastrpc: Fix use-after-free race condition for maps","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nmisc: fastrpc: Fix use-after-free race condition for maps\n\nIt is possible that in between calling fastrpc_map_get() until\nmap->fl->lock is taken in fastrpc_free_map(), another thread can call\nfastrpc_map_lookup() and get a reference to a map that is about to be\ndeleted.\n\nRewrite fastrpc_map_get() to only increase the reference count of a map\nif it's non-zero. Propagate this to callers so they can know if a map is\nabout to be deleted.\n\nFixes this warning:\nrefcount_t: addition on 0; use-after-free.\nWARNING: CPU: 5 PID: 10100 at lib/refcount.c:25 refcount_warn_saturate\n...\nCall trace:\n refcount_warn_saturate\n [fastrpc_map_get inlined]\n [fastrpc_map_lookup inlined]\n fastrpc_map_create\n fastrpc_internal_invoke\n fastrpc_device_ioctl\n __arm64_sys_ioctl\n invoke_syscall"}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"c68cfb718c8f97b7f7a50ed66be5feb42d0c8988","status":"affected","lessThan":"556dfdb226ce1e5231d8836159b23f8bb0395bf4","versionType":"git"},{"version":"c68cfb718c8f97b7f7a50ed66be5feb42d0c8988","status":"affected","lessThan":"b171d0d2cf1b8387c72c8d325c5d5746fa271e39","versionType":"git"},{"version":"c68cfb718c8f97b7f7a50ed66be5feb42d0c8988","status":"affected","lessThan":"61a0890cb95afec5c8a2f4a879de2b6220984ef1","versionType":"git"},{"version":"c68cfb718c8f97b7f7a50ed66be5feb42d0c8988","status":"affected","lessThan":"079c78c68714f7d8d58e66c477b0243b31806907","versionType":"git"},{"version":"c68cfb718c8f97b7f7a50ed66be5feb42d0c8988","status":"affected","lessThan":"96b328d119eca7563c1edcc4e1039a62e6370ecb","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/misc/fastrpc.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.1","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.1","versionType":"semver"},{"version":"5.4.230","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.165","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.90","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.8","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/misc/fastrpc.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/556dfdb226ce1e5231d8836159b23f8bb0395bf4"},{"url":"https://git.kernel.org/stable/c/b171d0d2cf1b8387c72c8d325c5d5746fa271e39"},{"url":"https://git.kernel.org/stable/c/61a0890cb95afec5c8a2f4a879de2b6220984ef1"},{"url":"https://git.kernel.org/stable/c/079c78c68714f7d8d58e66c477b0243b31806907"},{"url":"https://git.kernel.org/stable/c/96b328d119eca7563c1edcc4e1039a62e6370ecb"}],"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 - Reachable only via local ioctl on /dev/fastrpc-* (fastrpc_device_ioctl → fastrpc_internal_invoke → fastrpc_map_create/lookup); not exposed over the network.\nAC:L - The attacker fully controls both racing threads through concurrent FASTRPC_IOCTL_INVOKE (and related) ioctls on a shared fd; fl->mutex never serializes these paths, and the DMA unmap/detach work in fastrpc_free_map widens the window, so the race is reliably attacker-driven.\nPR:L - fastrpc_device_open and the invoke path require no capabilities; Android/Qualcomm deployments (and prior fastrpc CVEs such as CVE-2021-28375) treat the non-secure fastrpc device as reachable by unprivileged local apps.\nUI:N - Exploitation needs no victim action beyond the attacker opening the device and issuing ioctls.\nS:U - Impact is confined to the host kernel authority (local privilege escalation / memory corruption); it does not cross a VM, IOMMU, or other security boundary.\nC:H - Use-after-free of struct fastrpc_map (dma_buf, sg_table, phys/va, list linkage) enables heap reuse and arbitrary kernel read primitives.\nI:H - The same UAF on map metadata and list/dma structures is exploitable for arbitrary kernel writes and control-flow hijacking.\nA:H - The UAF triggers refcount warnings and kernel oops/panic even when not fully exploited, so availability impact is high."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T08:52:43.003Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"5.4.230"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"5.10.165"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"5.15.90"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"6.1.8"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"6.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2022-48872","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2024-09-10T16:05:25.671974Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2024-09-12T17:32:54.076Z"}}]}}}