CVE-2025-40150

f2fs: fix to avoid migrating empty section

State
Published
Severity
Not scored
Published
Nov 12, 2025
Updated
May 23, 2026
Reserved
Apr 16, 2025

Read the record on cve.org

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".

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 40d76c393cca83938b11eb7ca8983aa3cd0ed69b to before db489778e6f2a4034c2cd26fadda2796eba24dcdAffected
  • 9703d69d9d153bb230711d0d577454552aeb13d4 to before 25d2dc669f2a7e48b335d1cb07139f2ffc9fe5dfAffected
  • 9703d69d9d153bb230711d0d577454552aeb13d4 to before eec1589be36fcf7440755703e4faeee2c01e360bAffected
  • 9703d69d9d153bb230711d0d577454552aeb13d4 to before d625a2b08c089397d3a03bff13fa8645e4ec7a01Affected
  • 6.6.33 to before 6.6.130Affected
LinuxLinux
  • 6.9Affected
  • before 6.9Not affected
  • 6.6.130 through 6.6.*Not affected
  • 6.12.78 through 6.12.*Not affected
  • 6.17.3 through 6.17.*Not affected
  • 6.18 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.