PT-2026-90420 · Linux · Linux

CVE-2026-89704

·

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: sample writeback error cursor before async COPY loop
nfsd copy file range() samples dst->f wb err into "since" after the copy loop, then uses it to detect writeback errors via filemap check wb err() once vfs fsync range() returns. Because the nfsd file cache reuses a single struct file across requests targeting the same inode, a concurrent COMMIT or stable WRITE on dst advances dst->f wb err to the current mapping->wb err via file check and advance wb err() during its own vfs fsync range(). If that advancement lands between the writeback error appearing in mapping->wb err and the COPY worker sampling "since", the worker captures the already-advanced cursor, errseq check() sees cur == since and returns zero, and NFSD4 COPY F COMMITTED is set even though writeback failed. CB OFFLOAD then encodes wr stable how = FILE SYNC4, the client treats the copied data as durable, and the failure becomes silent data loss.
Sample since once at the start of the function. The cursor then reflects state in effect before this COPY issues any writes, and filemap check wb err() detects any error that occurs during the copy regardless of which thread first observes it. This matches the pattern used by nfsd vfs write() and nfsd4 clone file range().
Found an issue in the description? Have something to add? Feel free to write us 👾

Related Identifiers

CVE-2026-89704

Affected Products

Linux