PT-2026-90406 · Linux · Linux

CVE-2026-89690

·

Published

2026-09-11

·

Updated

2026-09-11

None

No severity ratings or metrics are available. When they are, we'll update the corresponding info on the page.
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.
Found an issue in the description? Have something to add? Feel free to write us 👾

Related Identifiers

CVE-2026-89690

Affected Products

Linux