CVE-2025-40025
Description
In the Linux kernel, the following vulnerability has been resolved:
f2fs: fix to do sanity check on node footer for non inode dnode
As syzbot reported below:
------------[ cut here ]------------ kernel BUG at fs/f2fs/file.c:1243! Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI CPU: 0 UID: 0 PID: 5354 Comm: syz.0.0 Not tainted 6.17.0-rc1-syzkaller-00211-g90d970cade8e #0 PREEMPT(full) RIP: 0010:f2fs_truncate_hole+0x69e/0x6c0 fs/f2fs/file.c:1243 Call Trace:
f2fs_punch_hole+0x2db/0x330 fs/f2fs/file.c:1306 f2fs_fallocate+0x546/0x990 fs/f2fs/file.c:2018 vfs_fallocate+0x666/0x7e0 fs/open.c:342 ksys_fallocate fs/open.c:366 [inline] __do_sys_fallocate fs/open.c:371 [inline] __se_sys_fallocate fs/open.c:369 [inline] __x64_sys_fallocate+0xc0/0x110 fs/open.c:369 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f1e65f8ebe9
w/ a fuzzed image, f2fs may encounter panic due to it detects inconsistent truncation range in direct node in f2fs_truncate_hole().
The root cause is: a non-inode dnode may has the same footer.ino and footer.nid, so the dnode will be parsed as an inode, then ADDRS_PER_PAGE() may return wrong blkaddr count which may be 923 typically, by chance, dn.ofs_in_node is equal to 923, then count can be calculated to 0 in below statement, later it will trigger panic w/ f2fs_bug_on(, count == 0 || ...).
count = min(end_offset - dn.ofs_in_node, pg_end - pg_start);
This patch introduces a new node_type NODE_TYPE_NON_INODE, then allowing passing the new_type to sanity_check_node_footer in f2fs_get_node_folio() to detect corruption that a non-inode dnode has the same footer.ino and footer.nid.
Scripts to reproduce: mkfs.f2fs -f /dev/vdb mount /dev/vdb /mnt/f2fs touch /mnt/f2fs/foo touch /mnt/f2fs/bar dd if=/dev/zero of=/mnt/f2fs/foo bs=1M count=8 umount /mnt/f2fs inject.f2fs --node --mb i_nid --nid 4 --idx 0 --val 5 /dev/vdb mount /dev/vdb /mnt/f2fs xfs_io /mnt/f2fs/foo -c "fpunch 6984k 4k"
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
In the Linux kernel's f2fs, a crafted filesystem image can cause a kernel panic via a non-inode dnode misidentified as an inode, leading to a BUG in f2fs_truncate_hole.
Vulnerability
Description
The vulnerability resides in the Linux kernel's f2fs filesystem. A non-inode dnode (direct node) that has the same footer.ino and footer.nid values is incorrectly parsed as an inode. This causes the ADDRS_PER_PAGE() macro to return a wrong block address count (typically 923). When dn.ofs_in_node equals that count, the calculation min(end_offset - dn.ofs_in_node, pg_end - pg_start) yields zero, which triggers a kernel BUG due to f2fs_bug_on(count == 0) in f2fs_truncate_hole() [1].
Exploitation
Conditions
An attacker can exploit this by mounting a specially crafted f2fs image generated by a fuzzer. The exploitation requires local access to mount the filesystem and then perform a fallocate operation (specifically fpunch) on a file that triggers the vulnerable code path. A provided reproduction script uses inject.f2fs to corrupt an indirect node field, causing the misidentification [1].
Impact
Successful exploitation results in a kernel panic (denial of service). The bug is reachable from unprivileged users who can mount a filesystem and use fallocate, leading to system instability.
Mitigation
The fix has been applied in the Linux kernel stable tree. The commit introduces a new node type NODE_TYPE_NON_INODE and passes it to sanity_check_node_footer() in f2fs_get_node_folio() to detect and reject such corrupted nodes before they can cause a crash [1]. Users should update to a kernel containing this fix.
AI Insight generated on May 19, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected products
1Patches
2186098f34b8ac18ecd99e0c7Vulnerability mechanics
Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
2News mentions
0No linked articles in our index yet.