Home

Description

In the Linux kernel, the following vulnerability has been resolved: f2fs: fix to avoid migrating empty section It reports a bug from device w/ zufs: F2FS-fs (dm-64): Inconsistent segment (173822) type [1, 0] in SSA and SIT F2FS-fs (dm-64): Stopped filesystem due to reason: 4 Thread A Thread B - f2fs_expand_inode_data - f2fs_allocate_pinning_section - f2fs_gc_range - do_garbage_collect w/ segno #x - writepage - f2fs_allocate_data_block - new_curseg - allocate segno #x The root cause is: fallocate on pinning file may race w/ block allocation as above, result in do_garbage_collect() from fallocate() may migrate segment which is just allocated by a log, the log will update segment type in its in-memory structure, however GC will get segment type from on-disk SSA block, once segment type changes by log, we can detect such inconsistency, then shutdown filesystem. In this case, on-disk SSA shows type of segno #173822 is 1 (SUM_TYPE_NODE), however segno #173822 was just allocated as data type segment, so in-memory SIT shows type of segno #173822 is 0 (SUM_TYPE_DATA). Change as below to fix this issue: - check whether current section is empty before gc - add sanity checks on do_garbage_collect() to avoid any race case, result in migrating segment used by log. - btw, it fixes misc issue in printed logs: "SSA and SIT" -> "SIT and SSA".

PUBLISHED Reserved 2025-04-16 | Published 2025-11-12 | Updated 2025-12-01 | Assigner Linux

Product status

Default status
unaffected

9703d69d9d153bb230711d0d577454552aeb13d4 (git) before eec1589be36fcf7440755703e4faeee2c01e360b
affected

9703d69d9d153bb230711d0d577454552aeb13d4 (git) before d625a2b08c089397d3a03bff13fa8645e4ec7a01
affected

40d76c393cca83938b11eb7ca8983aa3cd0ed69b (git)
affected

Default status
affected

6.9
affected

Any version before 6.9
unaffected

6.17.3 (semver)
unaffected

6.18 (original_commit_for_fix)
unaffected

References

git.kernel.org/...c/eec1589be36fcf7440755703e4faeee2c01e360b

git.kernel.org/...c/d625a2b08c089397d3a03bff13fa8645e4ec7a01

cve.org (CVE-2025-40150)

nvd.nist.gov (CVE-2025-40150)

Download JSON