NFSD: Prevent client use-after-free during admin state revocation
Summary
| CVE | CVE-2026-89660 |
| State | PUBLISHED |
| Assigner | Linux |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-09-11 20:19:52 UTC |
| Updated | 2026-09-11 20:19:52 UTC |
| Description | In the Linux kernel, the following vulnerability has been resolved:
NFSD: Prevent client use-after-free during admin state revocation
A stateid holds only a bare pointer to its nfs4_client; a stateid
reference does not pin it. The client survives only because
__destroy_client() drains its stateids before free_client() runs.
nfsd4_revoke_states() drops nn->client_lock across revoke_one_stid(),
which dereferences the client to revoke a stateid and read
clp->cl_minorversion. A teardown racing the dropped lock can free
the client first.
Pinning cl_rpc_users under client_lock blocks the DESTROY_CLIENTID and
EXCHANGE_ID teardown, which refuses while cl_rpc_users is non-zero.
force_expire_client() ignores it: once its wait for cl_rpc_users to
reach zero has passed, a later pin goes unnoticed.
Under client_lock, skip a client whose cl_time is already zero --
force_expire_client() clears it there before waiting -- otherwise pin
cl_rpc_users before dropping the lock. The walk then either sees the
expiry and skips, or pins in time for that wait to cover the revoke. |
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|
| CNA |
Linux |
Linux |
affected 1c13bf9f2e3cd5a59ef988c6c5a49fe0f02bcdfc 549bd9868e9d77b07ea94870940d64342829c6ad git |
Not specified |
| CNA |
Linux |
Linux |
affected 1c13bf9f2e3cd5a59ef988c6c5a49fe0f02bcdfc bf1f948691523282cc4905bc6cd325e0c0b49e6a git |
Not specified |
| CNA |
Linux |
Linux |
affected 1c13bf9f2e3cd5a59ef988c6c5a49fe0f02bcdfc e270e5a0778e5bff852c8862ce9576ce70359393 git |
Not specified |
| CNA |
Linux |
Linux |
affected 6.9 |
Not specified |
| CNA |
Linux |
Linux |
unaffected 6.9 semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 6.18.51 6.18.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 7.2.4 7.2.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 7.3-rc1 * original_commit_for_fix |
Not specified |
References
| Reference | Source | Link | Tags |
|---|
| git.kernel.org/stable/c/bf1f948691523282cc4905bc6cd325e0c0b49e6a |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/e270e5a0778e5bff852c8862ce9576ce70359393 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/549bd9868e9d77b07ea94870940d64342829c6ad |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| CVE Program record |
CVE.ORG |
www.cve.org |
canonical |
| NVD vulnerability detail |
NVD |
nvd.nist.gov |
canonical, analysis |
No vendor comments have been submitted for this CVE.
There are currently no legacy QID mappings associated with this CVE.