-

CVE-2026-93235

f2fs: fix to zero post-EOF data when extending file size

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:
1. write 4096 bytes to file w/ 0x5a
2. use fiemap to get PBA of first block in file
3. truncate file to 4080
4. umount; write 4096 bytes to file w/ 0x5a directly via PBA; mount
5. extend filesize via
   a) append 4096 from offset 4096, or
   b) truncate 8192, or
   c) fallocate 4096 from offset 4096
6. verify the gap is zeroed in memory [4080,4096)
7. sync range 4096 from offset 4096; shutdown -f (flush meta before shutdown)
8. 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.
Daten sind bereitgestellt durch das CVE Programm von einer CVE Numbering Authority (CNA) (Unstrukturiert).
HerstellerLinux
≫
Produkt Linux
Default Statusunaffected
Version fbfa2cc58d5363f780f4f2ad0243a47185c2bb2a
Version < 6882d458d2e403f6ba7b45542dd31a6b7531eb2e
Status affected
Version fbfa2cc58d5363f780f4f2ad0243a47185c2bb2a
Version < 32c7f11a24268ba8d3bb50ea7f54d33f698cd253
Status affected
Version fbfa2cc58d5363f780f4f2ad0243a47185c2bb2a
Version < 91ec55ddc097ccddd25ffb95a3d079b2ef362372
Status affected
Version fbfa2cc58d5363f780f4f2ad0243a47185c2bb2a
Version < c42608c09b6b5d5967bf211c255914c068c2cde1
Status affected
Version fbfa2cc58d5363f780f4f2ad0243a47185c2bb2a
Version < 5eced87b7d19dbc76ebdddaf322046f9ac582fcb
Status affected
HerstellerLinux
≫
Produkt Linux
Default Statusaffected
Version 3.8
Status affected
Version 0
Version < 3.8
Status unaffected
Version <= 6.6.*
Version 6.6.157
Status unaffected
Version <= 6.12.*
Version 6.12.110
Status unaffected
Version <= 6.18.*
Version 6.18.51
Status unaffected
Version <= 7.2.*
Version 7.2.5
Status unaffected
Version <= *
Version 7.3-rc1
Status unaffected
VulnDex Vulnerability Enrichment
Diese Information steht angemeldeten Benutzern zur Verfügung. Login Login
Zu dieser CVE wurde keine Warnung gefunden.
EPSS Metriken
Typ Quelle Score Percentile
EPSS FIRST.org 0.21% 0.098
CVSS Metriken
Quelle Base Score Exploit Score Impact Score Vector String
Es wurden noch keine Informationen zu CWE veröffentlicht.
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