smb/client: validate new EOF for zero range
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.160, 6.12.111, 6.18.53, 7.2.7
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: smb/client: validate new EOF for zero range When FALLOC_FL_ZERO_RANGE is used without FALLOC_FL_KEEP_SIZE, smb3_zero_range() may extend EOF without checking RLIMIT_FSIZE, allowing the file to grow beyond the caller's file-size limit. Fix this by calling inode_newsize_ok() before sending the zero-range request when the operation would extend EOF. Reproducer, using a file on a CIFS mount: bash -c ' FILE=/mnt/cifs/repro trap "" SIGXFSZ ulimit -f 3072 truncate -s 2M "$FILE" fallocate --zero-range -o 0 -l 4M "$FILE" echo "fallocate rc=$?" stat -c "file size=%s" "$FILE" ' Before this change, the operation succeeds despite the 3 MiB limit: fallocate rc=0 file size=4194304 After this change, fallocate fails and leaves the file at 2 MiB.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 72c419d9b073628d3b5b0b2fc787b724f1a8c726 · fixed in 5fbd8848f2e25c8163896ec52863df2305a3bb63; From 72c419d9b073628d3b5b0b2fc787b724f1a8c726 · fixed in 3673f057b64abfa957e8ae84448db69369a5091a; From 72c419d9b073628d3b5b0b2fc787b724f1a8c726 · fixed in 06a4f9049cb6dc319bceec2dc813ba89add8b828; From 72c419d9b073628d3b5b0b2fc787b724f1a8c726 · fixed in f320ca20c273a26cd779bdb2b2e4b076a95c76f6; From 72c419d9b073628d3b5b0b2fc787b724f1a8c726 · fixed in 88972e35750792e717af287dc71f42a03b5cbce4
- Linux Linux
5.1
- KernelLinux
From 5.1.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.111; From 6.13.0 · fixed in 6.18.53; From 6.19.0 · fixed in 7.2.7