CVE-2026-98843: netfs: zero gaps in read-gaps folio to avoid writing back stale data
In the Linux kernel, the following vulnerability has been resolved:
netfs: zero gaps in read-gaps folio to avoid writing back stale data
netfsreadgaps() leaves gaps around a streaming write's dirty region unread on the server side, so a short/EOF response there left stale folio content that later got written back.
Zero it after the read completes, not before: netfswaitforread() returns rreq->transferred once ret >= 0, so build an iterator over the same bvec array the read used, advance past ret, and zero the rest. The dirty region already maps to sink pages in that array rather than the real folio, so this can't touch it, and only the actual shortfall gets zeroed instead of the whole gap upfront.
Affected Software
Event History
Frequently Asked Questions
What conditions are needed for stale data to be written back?
The issue occurs around a streaming write when netfs_read_gaps() reads data surrounding the dirty region and the server returns a short read or EOF response. Unread portions of the folio can retain stale contents and later be written back.
What does the fix change?
The fix zeroes only the portion that was not actually returned by the completed read. It performs this after the read completes and avoids overwriting the streaming write's dirty region, which is represented by sink pages rather than the real folio.