Description
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.
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
72c419d9b073628d3b5b0b2fc787b724f1a8c726 to < 5fbd8848f2e25c8163896ec52863df2305a3bb63affected72c419d9b073628d3b5b0b2fc787b724f1a8c726 to < 3673f057b64abfa957e8ae84448db69369a5091aaffected72c419d9b073628d3b5b0b2fc787b724f1a8c726 to < 06a4f9049cb6dc319bceec2dc813ba89add8b828affected72c419d9b073628d3b5b0b2fc787b724f1a8c726 to < f320ca20c273a26cd779bdb2b2e4b076a95c76f6affected72c419d9b073628d3b5b0b2fc787b724f1a8c726 to < 88972e35750792e717af287dc71f42a03b5cbce4affected
Linux Linux
Default version status: affected
5.1affected0 to < 5.1unaffected6.6.160 to ≤ 6.6.*unaffected6.12.111 to ≤ 6.12.*unaffected6.18.53 to ≤ 6.18.*unaffected7.2.7 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/5fbd8848f2e25c8163896ec52863df2305a3bb63 ↗
- https://git.kernel.org/stable/c/3673f057b64abfa957e8ae84448db69369a5091a ↗
- https://git.kernel.org/stable/c/06a4f9049cb6dc319bceec2dc813ba89add8b828 ↗
- https://git.kernel.org/stable/c/f320ca20c273a26cd779bdb2b2e4b076a95c76f6 ↗
- https://git.kernel.org/stable/c/88972e35750792e717af287dc71f42a03b5cbce4 ↗