CVE-2023-54276
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
30/12/2025
Last modified:
30/12/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
nfsd: move init of percpu reply_cache_stats counters back to nfsd_init_net<br />
<br />
Commit f5f9d4a314da ("nfsd: move reply cache initialization into nfsd<br />
startup") moved the initialization of the reply cache into nfsd startup,<br />
but didn&#39;t account for the stats counters, which can be accessed before<br />
nfsd is ever started. The result can be a NULL pointer dereference when<br />
someone accesses /proc/fs/nfsd/reply_cache_stats while nfsd is still<br />
shut down.<br />
<br />
This is a regression and a user-triggerable oops in the right situation:<br />
<br />
- non-x86_64 arch<br />
- /proc/fs/nfsd is mounted in the namespace<br />
- nfsd is not started in the namespace<br />
- unprivileged user calls "cat /proc/fs/nfsd/reply_cache_stats"<br />
<br />
Although this is easy to trigger on some arches (like aarch64), on<br />
x86_64, calling this_cpu_ptr(NULL) evidently returns a pointer to the<br />
fixed_percpu_data. That struct looks just enough like a newly<br />
initialized percpu var to allow nfsd_reply_cache_stats_show to access<br />
it without Oopsing.<br />
<br />
Move the initialization of the per-net+per-cpu reply-cache counters<br />
back into nfsd_init_net, while leaving the rest of the reply cache<br />
allocations to be done at nfsd startup time.<br />
<br />
Kudos to Eirik who did most of the legwork to track this down.
Impact
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/3025d489f9c8984d1bf5916c4a20097ed80fca5c
- https://git.kernel.org/stable/c/66a178177b2b3bb1d71e854c5e7bbb320eb0e566
- https://git.kernel.org/stable/c/768c408594b52d8531e1a8ab62e5620c19213e73
- https://git.kernel.org/stable/c/8549384d0f65981761fe2077d04fa2a8d37b54e0
- https://git.kernel.org/stable/c/ed9ab7346e908496816cffdecd46932035f66e2e



