Medium · published September 25, 2026
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.
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 5.1, < 6.6.160 | 6.6.160 |
| linux/linux_kernel | ≥ 6.7, < 6.12.111 | 6.12.111 |
| linux/linux_kernel | ≥ 6.13, < 6.18.53 | 6.18.53 |
| linux/linux_kernel | ≥ 6.19, < 7.2.7 | 7.2.7 |
| linux/linux_kernel | all versions | — |