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
Affected Products
Linux