CVE-2026-53368

f2fs: fix fsck inconsistency caused by incorrect nat_entry flag usage

State
Published
Severity
7.1 High
Published
Jul 19, 2026
Updated
Oct 30, 2026
Reserved
Jun 9, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

f2fs: fix fsck inconsistency caused by incorrect nat_entry flag usage

f2fs_need_dentry_mark() reads nat_entry flags without mutual exclusion with the checkpoint path, which can result in an incorrect inode block marking state. The scenario is as follows:

create & write & fsync 'file A' write checkpoint - f2fs_do_sync_file // inline inode - f2fs_write_inode // inode folio is dirty - f2fs_write_checkpoint - f2fs_flush_merged_writes - f2fs_sync_node_pages - f2fs_fsync_node_pages // no dirty node - f2fs_need_inode_block_update // return true - f2fs_fsync_node_pages // inode dirtied - f2fs_need_dentry_mark //return true - f2fs_flush_nat_entries - f2fs_write_checkpoint end - __write_node_folio // inode with DENT_BIT_SHIFT set SPO, "fsck --dry-run" find inode has already checkpointed but still with DENT_BIT_SHIFT set

The state observed by f2fs_need_dentry_mark() can differ from the state observed in __write_node_folio() after acquiring sbi->node_write. The root cause is that the semantics of IS_CHECKPOINTED and HAS_FSYNCED_INODE are only guaranteed after the checkpoint write has fully completed.

This patch moves set_dentry_mark() into __write_node_folio() and protects it with the sbi->node_write lock.

Scores

CVSSScoreVectorSource
3.17.1 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 88bd02c9472a166b706284a34a84f1243322d782 to before bb1275802b482bc5854e434e212589fe253eab22Affected
  • 88bd02c9472a166b706284a34a84f1243322d782 to before 270c519bca3a59b6140d176415aff16e4e06f9e3Affected
  • 88bd02c9472a166b706284a34a84f1243322d782 to before bedb710b63ae1bd617e65d0a8cf6cea1200b3753Affected
  • 88bd02c9472a166b706284a34a84f1243322d782 to before b28a83ea4934215b5de906c3ee4fbfbc651573e0Affected
  • 88bd02c9472a166b706284a34a84f1243322d782 to before 019f9dda7f66e55eb94cd32e1d3fff5835f73fbcAffected
LinuxLinux
  • 3.18Affected
  • before 3.18Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.12.114 through 6.12.*Not affected
  • 6.18.30 through 6.18.*Not affected
  • 7.0.7 through 7.0.*Not affected
  • 7.1 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.