Description (CNA)
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 (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected f14816f2f928c560d28ba344af689f56efcd6f55 before b8e5894e56cff70fa245628fe16f0ad6367f8090; affected 3145fe0ebb16e1715ad541a301bc6675c8375fcd before bc2baca02ec56da7707a74ed5d340b0a1dff1841; affected 555dbf1a9aac6d3150c8b52fa35f768a692f4eeb before 43b65d2997963e80e8d8d86520bcb1e0751227de; affected 555dbf1a9aac6d3150c8b52fa35f768a692f4eeb before 666e837b247fcadf2d8d508b9b0e49d720393eb4; affected 555dbf1a9aac6d3150c8b52fa35f768a692f4eeb before 1dd664b39774a9c89b72de8e59bf9ef4b3aaff2e; affected 555dbf1a9aac6d3150c8b52fa35f768a692f4eeb before 4367afc119c51e17a616f6908772b7e2c2c4013f; affected 555dbf1a9aac6d3150c8b52fa35f768a692f4eeb before b027cca33c97354149fcc0ddeede4525c41093cd; affected 555dbf1a9aac6d3150c8b52fa35f768a692f4eeb before 2090b05803faab8a9fa62fbff871007862cac1b7; affected 5.10.124 before 5.10.261; affected 5.15.49 before 5.15.212 |
| Linux / Linux | affected 5.17; unaffected 0 before 5.17; unaffected 5.10.261 through 5.10.*; unaffected 5.15.212 through 5.15.*; unaffected 6.1.178 through 6.1.*; unaffected 6.6.145 through 6.6.*; unaffected 6.12.95 through 6.12.*; unaffected 6.18.38 through 6.18.*; unaffected 7.1.3 through 7.1.*; unaffected 7.2 through * |
CWE
No CWE identifiers supplied.
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