PT-2026-90379 · Linux · Linux

CVE-2026-89663

·

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: revoke copy-notify stateids before dropping their reference
Copy-notify stateids live in the s2s cp stateids IDR and on their parent stid's sc cp list, pinned by a single membership reference. free cpntf state locked() only unlinks an entry once its refcount reaches zero, so any revoke path that runs while a concurrent find cpntf state()/manage cpntf state() holder has elevated cs count drops the reference without unlinking, leaving the entry discoverable with its membership reference already consumed. A second revoke or a laundromat tick then frees it while the reader still holds the pointer -- a KASAN-detectable use-after-free at the reader's nfs4 put cpntf state().
This affected all three revoke paths:
  • The parent-stid drain (nfs4 free cpntf statelist()) repeatedly called free cpntf state locked() on the first list entry; a holder that had bumped cs count made it return early, so the next iteration re-decremented and burned the holder's reference.
  • OFFLOAD CANCEL (manage cpntf state()) and laundromat expiry likewise used free cpntf state locked() and could drop 2->1 without unlinking.
Add revoke cpntf state locked(), which unhashes the entry from the IDR and sc cp list first (deferring the final free to any holder), and use it from all three revoke paths. The drain now walks with list for each entry safe() and revokes each entry unconditionally, so it terminates in one pass per entry regardless of cs count. The unhash is gated on !list empty(&cps->cp list); the idr remove() gate matters because idr alloc cyclic() may have recycled the so id by then. Keep free cpntf state locked() for the reference-holder put path only, where a concurrent revoke may already have unlinked the entry (its list del init() then a no-op).
Found an issue in the description? Have something to add? Feel free to write us 👾

Related Identifiers

CVE-2026-89663

Affected Products

Linux