CVE-2026-93235
N/A
Summary
In the Linux kernel, the following vulnerability has been resolved:
f2fs: fix to zero post-EOF data when extending file size
generic/794 4s … - output mismatch (see /share/git/fstests/results//generic/794.out.bad) — tests/generic/794.out 2026-06-12 08:46:32.766426241 +0800 +++ /share/git/fstests/results//generic/794.out.bad 2026-07-05 18:32:55.000000000 +0800 @@ -1,4 +1,16 @@ QA output created by 794 append_write +FAIL: non-zero data in gap [4080,4096) after shutdown+remount +000000 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a >ZZZZZZZZZZZZZZZZ< +* +001000 truncate_up … (Run 'diff -u /share/git/fstests/tests/generic/794.out /share/git/fstests/results//generic/794.out.bad' to see the entire diff) Ran: generic/794 Failures: generic/794 Failed 1 of 1 tests
Steps of generic/794:
- write 4096 bytes to file w/ 0x5a
- use fiemap to get PBA of first block in file
- truncate file to 4080
- umount; write 4096 bytes to file w/ 0x5a directly via PBA; mount
- extend filesize via a) append 4096 from offset 4096, or b) truncate 8192, or c) fallocate 4096 from offset 4096
- verify the gap is zeroed in memory [4080,4096)
- sync range 4096 from offset 4096; shutdown -f (flush meta before shutdown)
- umount; mount; verify [4080,4096) is zeroed or not.
When extending file size (e.g. via truncate, fallocate, or write) across an unaligned EOF boundary, we need to ensure that post-EOF data in the partial page is zeroed out in pagecache and marked dirty, then writeback the cache to persist zeroed data before committing inode w/ updated i_size.
This help to prevent stale disk data beyond the previous EOF from being exposed after remounting or crash recovery.
Since f2fs is a LFS filesystem, we only support direct write via PBA in pinfile, and pinfile has section-aligned filesize, so in Android, there should no problem, but for other usage in different environment, let's fix this w/ fsync_mode=strict mount option.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 6882d458d2e403f6ba7b45542dd31a6b7531eb2e | affected |
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 32c7f11a24268ba8d3bb50ea7f54d33f698cd253 | affected |
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 91ec55ddc097ccddd25ffb95a3d079b2ef362372 | affected |
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < c42608c09b6b5d5967bf211c255914c068c2cde1 | affected |
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 5eced87b7d19dbc76ebdddaf322046f9ac582fcb | affected |
| Linux | Linux | 0 < 6.6.157 | affected |
| Linux | Linux | 0 < 6.12.110 | affected |
| Linux | Linux | 0 < 6.18.51 | affected |
| Linux | Linux | 0 < 7.2.5 | affected |
| Linux | Linux | 6.6.157 <= 6.6.* | unaffected |
| Linux | Linux | 6.12.110 <= 6.12.* | unaffected |
| Linux | Linux | 6.18.51 <= 6.18.* | unaffected |
| Linux | Linux | 7.2.5 <= 7.2.* | unaffected |
| Linux | Linux | 7.3-rc1 <= * | unaffected |
Weaknesses
References
- https://git.kernel.org/stable/c/6882d458d2e403f6ba7b45542dd31a6b7531eb2e
- https://git.kernel.org/stable/c/32c7f11a24268ba8d3bb50ea7f54d33f698cd253
- https://git.kernel.org/stable/c/91ec55ddc097ccddd25ffb95a3d079b2ef362372
- https://git.kernel.org/stable/c/c42608c09b6b5d5967bf211c255914c068c2cde1
- https://git.kernel.org/stable/c/5eced87b7d19dbc76ebdddaf322046f9ac582fcb
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.