CVE-2023-54276: nfsd: move init of percpu reply_cache_stats counters back to nfsd_init_net
In the Linux kernel, the following vulnerability has been resolved:
nfsd: move init of percpu reply_cache_stats counters back to nfsd_init_net
Commit f5f9d4a314da ("nfsd: move reply cache initialization into nfsd
startup") moved the initialization of the reply cache into nfsd startup,
but didn't account for the stats counters, which can be accessed before
nfsd is ever started. The result can be a NULL pointer dereference when
someone accesses /proc/fs/nfsd/reply_cache_stats while nfsd is still
shut down.
This is a regression and a user-triggerable oops in the right situation:
- non-x86_64 arch
- /proc/fs/nfsd is mounted in the namespace
- nfsd is not started in the namespace
- unprivileged user calls "cat /proc/fs/nfsd/reply_cache_stats"
Although this is easy to trigger on some arches (like aarch64), on
x86_64, calling this_cpu_ptr(NULL) evidently returns a pointer to the
fixed_percpu_data. That struct looks just enough like a newly
initialized percpu var to allow nfsd_reply_cache_stats_show to access
it without Oopsing.
Move the initialization of the per-net+per-cpu reply-cache counters
back into nfsd_init_net, while leaving the rest of the reply cache
allocations to be done at nfsd startup time.
Kudos to Eirik who did most of the legwork to track this down.
Security readout for executives and security teams
Plain-English summary
CVE-2023-54276 is a Linux kernel NFS server regression that can let a local unprivileged user trigger a kernel oops under specific conditions. The impact is availability-focused: affected systems may crash or become unstable when NFS reply-cache statistics are read before nfsd has started.
Executive priority
Treat as a focused stability risk, not a broad internet-facing emergency. Patch through normal kernel maintenance, with higher priority for aarch64 or other non-x86_64 systems where local users or workloads can reach nfsd proc entries.
Technical view
The regression moved NFS reply-cache initialization into nfsd startup but left per-CPU stats reachable earlier. On some non-x86_64 architectures, accessing /proc/fs/nfsd/reply_cache_stats before nfsd starts can dereference a NULL pointer. Kernel stable commits move stats initialization back to nfsd_init_net.
Likely exposure
Exposure appears limited to Linux systems with affected kernel code, /proc/fs/nfsd mounted in the relevant namespace, nfsd not started there, and an architecture where the NULL per-CPU pointer access oopses. The source specifically notes non-x86_64 systems such as aarch64 are easier to trigger.
Exploitation context
The source describes a user-triggerable local oops, not remote code execution. KEV status is false, and the provided bundle contains no evidence of active exploitation. Preconditions are specific and include local unprivileged access plus NFS proc filesystem state.
Researcher notes
The vulnerability hinges on initialization ordering for per-net and per-CPU reply-cache counters. The source states x86_64 may avoid the oops because this_cpu_ptr(NULL) maps to fixed_percpu_data, so architecture behavior materially affects reproducibility.
Mitigation direction
Upgrade to a kernel containing the referenced stable fixes.
Prioritize non-x86_64 Linux systems using or exposing nfsd proc interfaces.
Check Linux distribution advisories for backported fixes and package versions.
If upgrade is delayed, review whether nfsd proc exposure is necessary in namespaces.
Validation and detection
Inventory Linux kernel versions and vendor backport status.
Identify systems running affected kernel builds with NFS server components present.
Review namespaces where /proc/fs/nfsd is mounted while nfsd is stopped.
Confirm remediation by matching installed kernels to vendor-fixed or stable-fixed builds.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2023-54276 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
0CVSS vectors
3Timeline events
0ADP providers
6Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Dec 30, 2025, 12:16 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.