CVE-2025-40150

f2fs: fix to avoid migrating empty section

N/A
Published: November 12, 2025 at 10:23 AM UTC
Updated: October 19, 2026 at 09:10 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
N/A
Exploit prediction
EPSS 0.3%

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

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

6.6.33 ≤ v < 6.6.13040d76c393cca83938b11eb7ca8983aa3cd0ed69b6.6.336.99703d69d9d153bb230711d0d577454552aeb13d4
Vendor states this is fixed in 25d2dc669f2a7e48b335d1cb07139f2ffc9fe5df (fixed)
Vendor states this is fixed in d625a2b08c089397d3a03bff13fa8645e4ec7a01 (fixed)
Vendor states this is fixed in db489778e6f2a4034c2cd26fadda2796eba24dcd (fixed)
Vendor states this is fixed in eec1589be36fcf7440755703e4faeee2c01e360b (fixed)
Vendor states this is fixed in 6.12.78 (unaffected)
Vendor states this is fixed in 6.17.3 (unaffected)
Vendor states this is fixed in 6.18 (unaffected)
Vendor states this is fixed in 6.6.130 (unaffected)
Vendor states this is fixed in 6.9 (unaffected)

Remediation

No guide yet

No remediation guidance has been written for this CVE yet, and no fixed version or vendor advisory is recorded against it.

Quick Info

StatusDEFERRED

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card