PT-2026-90421 · Linux · Linux

CVE-2026-89705

·

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: restore rq status counter to even on all nfsd dispatch() exit paths
nfsd dispatch() sets rq status counter to an odd value once a request has been decoded, and back to an even value once it has been fully processed, forming a seq-lock like protocol with the lockless reader in nfsd nl rpc status get dumpit().
Only the fully successful path restored the counter to even. The cache-hit (RC REPLY), drop (RC DROPIT / RQ DROPME) and encode-error paths all return after the odd-valued store without ever bringing the counter back to even. Once one of those paths is taken, rq status counter is left odd: the next request's decode ORs in 1 (still odd) and only a subsequent successful encode restores even. While stuck odd, the dumpit reader treats the rqstp fields as stable and its retry check compares against the same unchanging odd value, so it never detects concurrent mutation. This exposes actively mutating fields (e.g. args->ops / args->opcnt during compound decode and release) to the lockless reader, which can read past the end of the 8-element inline ops array.
Add a helper that advances the counter to the next even value and call it on every return path that follows the odd-valued store. The decode-error path is left untouched as it is reached before the counter is set odd.
Found an issue in the description? Have something to add? Feel free to write us 👾

Related Identifiers

CVE-2026-89705

Affected Products

Linux