GPU VulnDB

Database/Control plane, storage & DevOps

Linux kernel NFSD: use-after-free on the source server when CLOSE precedes FREE_STATEID during inter-server copy

CVSS 7.8CVE-2022-50241Control plane, storage & DevOpscurated

Impact

On an NFS server handling NFSv4.2 inter-server copy, nfsd4_close_open_stateid() frees the lock states on its list without cleaning up the matching copy state on s2s_cp_stateids. When the client sends CLOSE before FREE_STATEID - which the Linux client sometimes does - the laundromat later walks a freed list and hits a use-after-free. That is a kernel UAF triggerable by an ordinary NFS client's legitimate request ordering, on the storage server that a whole GPU cluster mounts its datasets and checkpoints from. A panic there stalls every training job on the fleet, not one node. The fix calls nfs4_free_cpntf_statelist() in nfsd4_close_open_stateid() before the reaplist is freed.

Who can reach it

Any authenticated NFSv4.2 client that can reach the exported server and perform a server-to-server COPY, then CLOSE the open state. No special privilege beyond a normal mount; the trigger occurs in ordinary operation, not only under attack. Servers without NFSv4.2 inter-server copy enabled are not affected.

What to do

Patch the kernel on the NFS server to a stable release carrying the fix (commits in the references) and reboot it - NFSD is in-kernel, so expect an export outage and a reboot of the storage head, which means quiescing or tolerating stalled mounts cluster-wide. If patching must wait, disabling NFSv4.2 inter-server copy on the export removes the path.

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.