GPU VulnDB

Database/Control plane, storage & DevOps

Linux nfsd: use-after-free on an nfs4_client freed during NFSv4.0 revoked-state cleanup

UnscoredCVE-2026-89658Control plane, storage & DevOpscurated

Impact

nfs40_clean_admin_revoked() takes a stateid reference under clp->cl_lock, drops nn->client_lock, then calls nfsd4_drop_revoked_stid(), which dereferences s->sc_client->cl_lock. A stateid reference does not pin the client, so a teardown racing that dropped lock can free the client while it is still in use. The cleanup runs from the laundromat, so a periodic sweep can collide with force_expire_client() driven by a write to clients/<id>/ctl. For a fleet whose NFS server sits on a storage or head node, the realistic outcome is a kernel crash of that server - and an NFS server crash stalls every GPU node mounting it, not just one. The fix skips a client already expiring and otherwise pins it with cl_rpc_users.

Who can reach it

Local race on the NFS server host between the laundromat and an administrative client expiry (a write to /proc/fs/nfsd clients/<id>/ctl). No tenant or remote NFS client path is described.

What to do

Update the NFS server host to a stable kernel carrying the fix; four backport commits are linked on the record. nfsd lives in the kernel, so this is a reboot of the server node with client mounts stalled or failed over, not a daemon restart. Batch with the other nfsd lifetime fixes published the same day so one window covers all of them.

References

Related entries

All Control plane, storage & DevOps 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.