In the Linux kernel, the following vulnerability has been resolved: cifs:
Fix writeback data corruption cifs writeback doesn’t correctly handle the
case where cifs_extend_writeback() hits a point where it is considering an
additional folio, but this would overrun the wsize - at which point it
drops out of the xarray scanning loop and calls xas_pause(). The problem is
that xas_pause() advances the loop counter - thereby skipping that page.
What needs to happen is for xas_reset() to be called any time we decide we
don’t want to process the page we’re looking at, but rather send the
request we are building and start a new one. Fix this by copying and
adapting the netfslib writepages code as a temporary measure, with cifs
writeback intending to be offloaded to netfslib in the near future. This
also fixes the issue with the use of filemap_get_folios_tag() causing retry
of a bunch of pages which the extender already dealt with. This can be
tested by creating, say, a 64K file somewhere not on cifs (otherwise
copy-offload may get underfoot), mounting a cifs share with a wsize of
64000, copying the file to it and then comparing the original file and the
copy: dd if=/dev/urandom of=/tmp/64K bs=64k count=1 mount
//192.168.6.1/test /mnt -o user=…,pass=…,wsize=64000 cp /tmp/64K
/mnt/64K cmp /tmp/64K /mnt/64K Without the fix, the cmp fails at position
64000 (or shortly thereafter).
OS | Version | Architecture | Package | Version | Filename |
---|---|---|---|---|---|
ubuntu | 23.10 | noarch | linux | < any | UNKNOWN |
ubuntu | 24.04 | noarch | linux | < 6.8.0-35.35 | UNKNOWN |
ubuntu | 23.10 | noarch | linux-aws | < any | UNKNOWN |
ubuntu | 24.04 | noarch | linux-aws | < 6.8.0-1009.9 | UNKNOWN |
ubuntu | 22.04 | noarch | linux-aws-6.5 | < any | UNKNOWN |
ubuntu | 23.10 | noarch | linux-azure | < any | UNKNOWN |
ubuntu | 24.04 | noarch | linux-azure | < 6.8.0-1008.8 | UNKNOWN |
ubuntu | 22.04 | noarch | linux-azure-6.5 | < any | UNKNOWN |
ubuntu | 23.10 | noarch | linux-gcp | < any | UNKNOWN |
ubuntu | 24.04 | noarch | linux-gcp | < 6.8.0-1008.9 | UNKNOWN |
git.kernel.org/linus/f3dc1bdb6b0b0693562c7c54a6c28bafa608ba3c (6.9-rc1)
git.kernel.org/stable/c/65f2ced695982ccd516196d0a9447d85dbe2eed5
git.kernel.org/stable/c/844b4e132f57f1333dc79feaa035075a096762e4
git.kernel.org/stable/c/e45deec35bf7f1f4f992a707b2d04a8c162f2240
git.kernel.org/stable/c/f3dc1bdb6b0b0693562c7c54a6c28bafa608ba3c
launchpad.net/bugs/cve/CVE-2024-27036
nvd.nist.gov/vuln/detail/CVE-2024-27036
security-tracker.debian.org/tracker/CVE-2024-27036
ubuntu.com/security/notices/USN-6816-1
ubuntu.com/security/notices/USN-6817-1
ubuntu.com/security/notices/USN-6817-2
ubuntu.com/security/notices/USN-6817-3
www.cve.org/CVERecord?id=CVE-2024-27036