CVE Catalog

CVE-2026-90038

Unknown
Published: Translated: NVD NIST

Summary

In the Linux kernel, nfsd4_revoke_export_states() drops nn->client_lock but the held stateid reference does not pin the client. A concurrent client teardown can free the client while revoke_one_stid() still dereferences it, causing a use-after-free.

Risk Assessment

An administrator removing an export (exportfs -u) can race a client expiry, leading to a use-after-free and kernel crash.

Recommendation

Update the Linux kernel to a version where the client is pinned with cl_rpc_users under client_lock and already-expiring clients are skipped.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: NFSD: Prevent client use-after-free during export state revocation nfsd4_revoke_export_states() has the same use-after-free as nfsd4_revoke_states(): it drops nn->client_lock across revoke_one_stid() and the following read of clp->cl_minorversion, but the stateid reference it holds does not pin the client. A teardown racing the dropped lock can free the client while revoke_one_stid() still dereferences it. exportfs -u drives this path through NFSD_CMD_UNLOCK_EXPORT, so an administrator removing an export can race a client expiry. Skip a client that is already expiring and otherwise pin it with cl_rpc_users under client_lock before dropping the lock, matching nfsd4_revoke_states().

Vulnerability data from NVD (NIST) · CISA KEV · EPSS