CVE-2026-53368
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
19/07/2026
Última modificación:
19/07/2026
Descripción
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
f2fs: fix fsck inconsistency caused by incorrect nat_entry flag usage<br />
<br />
f2fs_need_dentry_mark() reads nat_entry flags without mutual exclusion<br />
with the checkpoint path, which can result in an incorrect inode block<br />
marking state. The scenario is as follows:<br />
<br />
create & write & fsync &#39;file A&#39; write checkpoint<br />
- f2fs_do_sync_file // inline inode<br />
- f2fs_write_inode // inode folio is dirty<br />
- f2fs_write_checkpoint<br />
- f2fs_flush_merged_writes<br />
- f2fs_sync_node_pages<br />
- f2fs_fsync_node_pages // no dirty node<br />
- f2fs_need_inode_block_update // return true<br />
- f2fs_fsync_node_pages // inode dirtied<br />
- f2fs_need_dentry_mark //return true<br />
- f2fs_flush_nat_entries<br />
- f2fs_write_checkpoint end<br />
- __write_node_folio // inode with DENT_BIT_SHIFT set<br />
SPO, "fsck --dry-run" find inode has already checkpointed but still<br />
with DENT_BIT_SHIFT set<br />
<br />
The state observed by f2fs_need_dentry_mark() can differ from the state<br />
observed in __write_node_folio() after acquiring sbi->node_write. The<br />
root cause is that the semantics of IS_CHECKPOINTED and<br />
HAS_FSYNCED_INODE are only guaranteed after the checkpoint write has<br />
fully completed.<br />
<br />
This patch moves set_dentry_mark() into __write_node_folio() and<br />
protects it with the sbi->node_write lock.



