Description
In the Linux kernel, the following vulnerability has been resolved: nfsd: reset write verifier on deferred writeback errors nfsd_vfs_write() and nfsd_commit() both call filemap_check_wb_err() to detect deferred writeback errors, but neither rotates the server's write verifier (nn->writeverf) when this check fails. Every other durable-storage-failure path in these functions calls commit_reset_write_verifier() before returning an error. The missing rotation means clients holding UNSTABLE write data under the current verifier will COMMIT, receive the unchanged verifier back, and conclude their data is durable — silently dropping data that failed writeback. This violates the UNSTABLE+COMMIT durability contract (RFC 1813 §3.3.7, RFC 8881 §18.32). Add commit_reset_write_verifier() calls at both filemap_check_wb_err() error sites, matching the pattern used by adjacent error paths in the same functions. The helper already filters -EAGAIN and -ESTALE internally, so the calls are unconditionally safe.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
f14816f2f928c560d28ba344af689f56efcd6f55 to < b8e5894e56cff70fa245628fe16f0ad6367f8090affected3145fe0ebb16e1715ad541a301bc6675c8375fcd to < bc2baca02ec56da7707a74ed5d340b0a1dff1841affected555dbf1a9aac6d3150c8b52fa35f768a692f4eeb to < 43b65d2997963e80e8d8d86520bcb1e0751227deaffected555dbf1a9aac6d3150c8b52fa35f768a692f4eeb to < 666e837b247fcadf2d8d508b9b0e49d720393eb4affected555dbf1a9aac6d3150c8b52fa35f768a692f4eeb to < 1dd664b39774a9c89b72de8e59bf9ef4b3aaff2eaffected555dbf1a9aac6d3150c8b52fa35f768a692f4eeb to < 4367afc119c51e17a616f6908772b7e2c2c4013faffected555dbf1a9aac6d3150c8b52fa35f768a692f4eeb to < b027cca33c97354149fcc0ddeede4525c41093cdaffected555dbf1a9aac6d3150c8b52fa35f768a692f4eeb to < 2090b05803faab8a9fa62fbff871007862cac1b7affected5.10.124 to < 5.10.261affected5.15.49 to < 5.15.212affected
Linux Linux
Default version status: affected
5.17affected0 to < 5.17unaffected5.10.261 to ≤ 5.10.*unaffected5.15.212 to ≤ 5.15.*unaffected6.1.178 to ≤ 6.1.*unaffected6.6.145 to ≤ 6.6.*unaffected6.12.95 to ≤ 6.12.*unaffected6.18.38 to ≤ 6.18.*unaffected7.1.3 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/b8e5894e56cff70fa245628fe16f0ad6367f8090 ↗
- https://git.kernel.org/stable/c/bc2baca02ec56da7707a74ed5d340b0a1dff1841 ↗
- https://git.kernel.org/stable/c/43b65d2997963e80e8d8d86520bcb1e0751227de ↗
- https://git.kernel.org/stable/c/666e837b247fcadf2d8d508b9b0e49d720393eb4 ↗
- https://git.kernel.org/stable/c/1dd664b39774a9c89b72de8e59bf9ef4b3aaff2e ↗
- https://git.kernel.org/stable/c/4367afc119c51e17a616f6908772b7e2c2c4013f ↗
- https://git.kernel.org/stable/c/b027cca33c97354149fcc0ddeede4525c41093cd ↗
- https://git.kernel.org/stable/c/2090b05803faab8a9fa62fbff871007862cac1b7 ↗