{"id":"CVE-2024-53174","state":"PUBLISHED","title":"SUNRPC: make sure cache entry active before cache_show","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nSUNRPC: make sure cache entry active before cache_show\n\nThe function `c_show` was called with protection from RCU. This only\nensures that `cp` will not be freed. Therefore, the reference count for\n`cp` can drop to zero, which will trigger a refcount use-after-free\nwarning when `cache_get` is called. To resolve this issue, use\n`cache_get_rcu` to ensure that `cp` remains active.\n\n------------[ cut here ]------------\nrefcount_t: addition on 0; use-after-free.\nWARNING: CPU: 7 PID: 822 at lib/refcount.c:25\nrefcount_warn_saturate+0xb1/0x120\nCPU: 7 UID: 0 PID: 822 Comm: cat Not tainted 6.12.0-rc3+ #1\nHardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS\n1.16.1-2.fc37 04/01/2014\nRIP: 0010:refcount_warn_saturate+0xb1/0x120\n\nCall Trace:\n <TASK>\n c_show+0x2fc/0x380 [sunrpc]\n seq_read_iter+0x589/0x770\n seq_read+0x1e5/0x270\n proc_reg_read+0xe1/0x140\n vfs_read+0x125/0x530\n ksys_read+0xc1/0x160\n do_syscall_64+0x5f/0x170\n entry_SYSCALL_64_after_hwframe+0x76/0x7e","publishedAt":"2024-12-27T13:49:18.892Z","updatedAt":"2026-08-05T11:44:21.962Z","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":"d48cf356a13073853f19be6ca5ebbecfc2762ebe","status":"affected","lessThan":"e9be26735d055c42543a4d047a769cc6d0fb1504","versionType":"git"},{"version":"d48cf356a13073853f19be6ca5ebbecfc2762ebe","status":"affected","lessThan":"02999e135b013d85c6df738746e8e24699befee4","versionType":"git"},{"version":"d48cf356a13073853f19be6ca5ebbecfc2762ebe","status":"affected","lessThan":"c7dac3af57e38b2054f990e573256d90bf887958","versionType":"git"},{"version":"d48cf356a13073853f19be6ca5ebbecfc2762ebe","status":"affected","lessThan":"068c0b50f3f700b94f78850834cd91ae3b34c2c1","versionType":"git"},{"version":"d48cf356a13073853f19be6ca5ebbecfc2762ebe","status":"affected","lessThan":"acfaf37888e0f0732fb6a50ff093dce6d99994d0","versionType":"git"},{"version":"d48cf356a13073853f19be6ca5ebbecfc2762ebe","status":"affected","lessThan":"ec305f303bf070b4f6896b7a76009f702956d402","versionType":"git"},{"version":"d48cf356a13073853f19be6ca5ebbecfc2762ebe","status":"affected","lessThan":"d882e2b7fad3f5e5fac66184a347f408813f654a","versionType":"git"},{"version":"d48cf356a13073853f19be6ca5ebbecfc2762ebe","status":"affected","lessThan":"2862eee078a4d2d1f584e7f24fa50dddfa5f3471","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/sunrpc/cache.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.20","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.20","versionType":"semver"},{"version":"5.4.287","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.231","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.174","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.120","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.64","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.11.11","status":"unaffected","lessThanOrEqual":"6.11.*","versionType":"semver"},{"version":"6.12.2","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.13","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/sunrpc/cache.c"]}],"references":["https://git.kernel.org/stable/c/e9be26735d055c42543a4d047a769cc6d0fb1504","https://git.kernel.org/stable/c/02999e135b013d85c6df738746e8e24699befee4","https://git.kernel.org/stable/c/c7dac3af57e38b2054f990e573256d90bf887958","https://git.kernel.org/stable/c/068c0b50f3f700b94f78850834cd91ae3b34c2c1","https://git.kernel.org/stable/c/acfaf37888e0f0732fb6a50ff093dce6d99994d0","https://git.kernel.org/stable/c/ec305f303bf070b4f6896b7a76009f702956d402","https://git.kernel.org/stable/c/d882e2b7fad3f5e5fac66184a347f408813f654a","https://git.kernel.org/stable/c/2862eee078a4d2d1f584e7f24fa50dddfa5f3471","https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html","https://lists.debian.org/debian-lts-announce/2025/03/msg00002.html"],"weaknesses":["CWE-416"],"ingestedAt":"2026-10-29T20:08:04.920Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2024/53xxx/CVE-2024-53174.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2024-53174","state":"PUBLISHED","datePublished":"2024-12-27T13:49:18.892Z","dateUpdated":"2026-08-05T11:44:21.962Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-11-19T17:17:25.007Z"},"containers":{"cna":{"title":"SUNRPC: make sure cache entry active before cache_show","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nSUNRPC: make sure cache entry active before cache_show\n\nThe function `c_show` was called with protection from RCU. This only\nensures that `cp` will not be freed. Therefore, the reference count for\n`cp` can drop to zero, which will trigger a refcount use-after-free\nwarning when `cache_get` is called. To resolve this issue, use\n`cache_get_rcu` to ensure that `cp` remains active.\n\n------------[ cut here ]------------\nrefcount_t: addition on 0; use-after-free.\nWARNING: CPU: 7 PID: 822 at lib/refcount.c:25\nrefcount_warn_saturate+0xb1/0x120\nCPU: 7 UID: 0 PID: 822 Comm: cat Not tainted 6.12.0-rc3+ #1\nHardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS\n1.16.1-2.fc37 04/01/2014\nRIP: 0010:refcount_warn_saturate+0xb1/0x120\n\nCall Trace:\n <TASK>\n c_show+0x2fc/0x380 [sunrpc]\n seq_read_iter+0x589/0x770\n seq_read+0x1e5/0x270\n proc_reg_read+0xe1/0x140\n vfs_read+0x125/0x530\n ksys_read+0xc1/0x160\n do_syscall_64+0x5f/0x170\n entry_SYSCALL_64_after_hwframe+0x76/0x7e"}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d48cf356a13073853f19be6ca5ebbecfc2762ebe","status":"affected","lessThan":"e9be26735d055c42543a4d047a769cc6d0fb1504","versionType":"git"},{"version":"d48cf356a13073853f19be6ca5ebbecfc2762ebe","status":"affected","lessThan":"02999e135b013d85c6df738746e8e24699befee4","versionType":"git"},{"version":"d48cf356a13073853f19be6ca5ebbecfc2762ebe","status":"affected","lessThan":"c7dac3af57e38b2054f990e573256d90bf887958","versionType":"git"},{"version":"d48cf356a13073853f19be6ca5ebbecfc2762ebe","status":"affected","lessThan":"068c0b50f3f700b94f78850834cd91ae3b34c2c1","versionType":"git"},{"version":"d48cf356a13073853f19be6ca5ebbecfc2762ebe","status":"affected","lessThan":"acfaf37888e0f0732fb6a50ff093dce6d99994d0","versionType":"git"},{"version":"d48cf356a13073853f19be6ca5ebbecfc2762ebe","status":"affected","lessThan":"ec305f303bf070b4f6896b7a76009f702956d402","versionType":"git"},{"version":"d48cf356a13073853f19be6ca5ebbecfc2762ebe","status":"affected","lessThan":"d882e2b7fad3f5e5fac66184a347f408813f654a","versionType":"git"},{"version":"d48cf356a13073853f19be6ca5ebbecfc2762ebe","status":"affected","lessThan":"2862eee078a4d2d1f584e7f24fa50dddfa5f3471","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/sunrpc/cache.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.20","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.20","versionType":"semver"},{"version":"5.4.287","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.231","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.174","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.120","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.64","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.11.11","status":"unaffected","lessThanOrEqual":"6.11.*","versionType":"semver"},{"version":"6.12.2","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.13","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/sunrpc/cache.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/e9be26735d055c42543a4d047a769cc6d0fb1504"},{"url":"https://git.kernel.org/stable/c/02999e135b013d85c6df738746e8e24699befee4"},{"url":"https://git.kernel.org/stable/c/c7dac3af57e38b2054f990e573256d90bf887958"},{"url":"https://git.kernel.org/stable/c/068c0b50f3f700b94f78850834cd91ae3b34c2c1"},{"url":"https://git.kernel.org/stable/c/acfaf37888e0f0732fb6a50ff093dce6d99994d0"},{"url":"https://git.kernel.org/stable/c/ec305f303bf070b4f6896b7a76009f702956d402"},{"url":"https://git.kernel.org/stable/c/d882e2b7fad3f5e5fac66184a347f408813f654a"},{"url":"https://git.kernel.org/stable/c/2862eee078a4d2d1f584e7f24fa50dddfa5f3471"}],"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 vulnerability is triggered by a read() syscall on the procfs file /proc/net/rpc/*/content (path proc_reg_read → seq_read → c_show); it requires local access, not network reachability.\nAC:L - The attacker controls both sides of the race — populating entries by writing the cache's channel file and dropping their refcount by writing flush, while looping reads of content — so the UAF window can be hit repeatably; per guidance, attacker-controlled races are Low.\nPR:L - In the init namespace content is root-only (mode 400), but an unprivileged user can create a user+network namespace (unshare -Ur; unshare -n) and become root of the fresh per-netns sunrpc caches, gaining read access to content and write access to channel/flush — empirically verified. This is Low, not High.\nUI:N - The attacker performs the cache population, flush, and read entirely on its own; no victim interaction is needed.\nS:U - The use-after-free is confined to the kernel's own memory/authority; no crossing of a security boundary such as VM or IOMMU is involved.\nC:H - The use-after-free lets c_show read fields of a potentially freed and reallocated cache_head and emit them into the content output the attacker reads, enabling disclosure of freed/reused kernel memory.\nI:H - A use-after-free on the cache_head (with cache_check/cache_put operating on freed, potentially reallocated memory) provides a corruption primitive; per guidance UAFs are scored High for integrity.\nA:H - The use-after-free corrupts refcounting and touches freed memory, readily causing an oops/panic; per guidance any UAF/crash is High."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T11:44:21.962Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.20","versionEndExcluding":"5.4.287"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.20","versionEndExcluding":"5.10.231"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.20","versionEndExcluding":"5.15.174"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.20","versionEndExcluding":"6.1.120"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.20","versionEndExcluding":"6.6.64"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.20","versionEndExcluding":"6.11.11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.20","versionEndExcluding":"6.12.2"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.20","versionEndExcluding":"6.13"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":7.8,"attackVector":"LOCAL","baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","integrityImpact":"HIGH","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"HIGH","privilegesRequired":"LOW","confidentialityImpact":"HIGH"}},{"other":{"type":"ssvc","content":{"id":"CVE-2024-53174","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2025-02-11T15:43:35.253566Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-416","lang":"en","type":"CWE","description":"CWE-416 Use After Free"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2025-02-11T15:45:26.877Z"}},{"title":"CVE Program Container","references":[{"url":"https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html"},{"url":"https://lists.debian.org/debian-lts-announce/2025/03/msg00002.html"}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2025-11-03T20:47:09.594Z"}}]}}}