CVE-2024-27036: cifs: Fix writeback data corruption
In the Linux kernel, the following vulnerability has been resolved:
cifs: Fix writeback data corruption
cifs writeback doesn't correctly handle the case where cifsextendwriteback() 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 xaspause(). The problem is that xaspause() advances the loop counter - thereby skipping that page.
What needs to happen is for xasreset() 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 filemapgetfoliostag() 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).
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2024-27036?
CVE-2024-27036 has a severity rating of medium due to its impact on writeback data integrity in the Linux kernel.
How do I fix CVE-2024-27036?
To fix CVE-2024-27036, update your Linux kernel to one of the patched versions: 5.10.223-1, 5.10.226-1, 6.1.123-1, 6.1.119-1, 6.12.10-1, or 6.12.11-1.
What kind of systems are affected by CVE-2024-27036?
CVE-2024-27036 affects systems running specific versions of the Linux kernel with cifs functionality.
Is CVE-2024-27036 a remote code execution vulnerability?
No, CVE-2024-27036 does not directly lead to remote code execution but impacts the integrity of data written back through cifs.
When was CVE-2024-27036 disclosed?
CVE-2024-27036 was disclosed following the identification of a bug in the Linux kernel's handling of writeback data.