CVE-2026-89690

CVE-2026-89690

High · published September 12, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
5.2
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

nfsd: defer vfree of compound ops to fix rpc_status UAF

The rpc_status netlink dumpit walks every in-flight svc_rqst under

rcu_read_lock and, for NFSv4 requests, reads opnums out of

args->ops[]. But args->ops is a separate vmalloc buffer freed

synchronously by vfree() in nfsd4_release_compoundargs() at the end

of every compound. The dumpit's rcu_read_lock pins the svc_rqst

struct itself (freed via kfree_rcu), but nothing defers the vfree

of the ops buffer across the RCU grace period. A concurrent compound

completion can therefore free the buffer while the dumpit is reading

it — a use-after-free on vmalloc memory.

The trailing seqcount recheck (smp_load_acquire of rq_status_counter)

cannot undo a load that already retired against freed memory.

Fix by replacing vfree(args->ops) with kvfree_rcu_mightsleep(), which

defers the free until after an RCU grace period. This makes the

existing rcu_read_lock in the dumpit sufficient to protect the read.

The tradeoff is that completed compound ops buffers (up to

200 * sizeof(struct nfsd4_op)) persist in memory slightly longer,

across one grace period, before being reclaimed.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00163 · 5.2th percentile
Published
2026-09-12T00:19Z
References (4)
EPSS history
Timeline
  • 13 SEP 03:23Z
    EPSS moved — → 0%
    epss
  • 11 SEP 19:46Z
    nfsd: defer vfree of compound ops to fix rpc_status UAF
    cvelistv5