CVE-2026-89660

CVE-2026-89660

Critical · published September 12, 2026

CVSS v3.1
9.8
EPSS
1%
Percentile
48.9
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
9.8 · CRITICAL
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00617 · 48.9th percentile
Published
2026-09-12T00:19Z
References (4)
EPSS history
Timeline
  • 13 SEP 03:23Z
    EPSS moved — → 0%
    epss
  • 11 SEP 19:45Z
    NFSD: Prevent client use-after-free during admin state revocation
    cvelistv5