GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux SUNRPC: unchecked percpu_counter_init leaves nfsd running on NULL per-cpu stats

CVSS 8.1CVE-2026-89547Kernel, userspace & hypervisorcurated

Impact

__svc_create() ignores the return value of three per-pool percpu_counter_init() calls. If one fails, the counter is left with a NULL backing pointer and an uninitialized lock, and the half-built svc_serv is still handed to nfsd, lockd, or the NFS callback service. Hot-path increments then resolve to offset zero of the current CPU's per-cpu area and silently corrupt whatever variable lives there, /proc/fs/nfsd/pool_stats returns garbage, and debug builds splat on the uninitialized spinlock. The commit message is explicit that reaching this state needs a percpu allocation failure during RPC server startup, so it is a local-administrator-under-memory-pressure or fault-injection condition - a remote peer cannot induce it. The NVD 8.1 remote score overstates the real reach.

Who can reach it

Local: whoever starts the RPC server (nfsd, lockd, NFS callback) on a node already under enough memory pressure that a percpu allocation fails, or someone with fault-injection access. No remote trigger.

What to do

Apply the stable fix, which checks each percpu_counter_init() and unwinds the counters already set up on failure, then reboot the node. No runtime mitigation; avoiding nfsd startup on a memory-exhausted node reduces the chance of hitting it. The record names stable commits, not a released version.

References

Related entries

All Kernel, userspace & hypervisor entries

This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.