f2fs: fix fsck inconsistency caused by incorrect nat_entry flag usage (Linux Linux)
At a glance
- Source
- NVD
- EPSS
- EPSS 0.17 % · percentile 6 ()
- State
- PUBLISHED
- Published
- Updated
- Assigner
- Linux
- NVD status
- Modified
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.
References
- https://git.kernel.org/stable/c/bb1275802b482bc5854e434e212589fe253eab22
- https://git.kernel.org/stable/c/270c519bca3a59b6140d176415aff16e4e06f9e3
- https://git.kernel.org/stable/c/bedb710b63ae1bd617e65d0a8cf6cea1200b3753
- https://git.kernel.org/stable/c/b28a83ea4934215b5de906c3ee4fbfbc651573e0
- https://git.kernel.org/stable/c/019f9dda7f66e55eb94cd32e1d3fff5835f73fbc
Scores
| Version | Score | Vector | Scored by |
|---|---|---|---|
| CVSS 3.1 | HIGH 7.1 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H | Linux |
| CVSS 3.1 | HIGH 7.1 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H | NVD · 416baaa9-dc9f-4396-8d5f-8c081fb06d67 (Secondary) |
European references
- ENISA EUVD · EUVD-2026-45438
- GCVE · GCVE-0-2026-53368
CERT-FR advisories
- CERTFR-2026-AVI-1252 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1229 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1203 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1162 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1066 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-0954 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-0926 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
Affected configurations (NVD CPE)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 3.18 < 6.18.30cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 6.19 < 7.0.7
Affected products
| Product | Versions |
|---|---|
| Linux · Linux | affected 88bd02c9472a166b706284a34a84f1243322d782 < bb1275802b482bc5854e434e212589fe253eab22 ; affected 88bd02c9472a166b706284a34a84f1243322d782 < 270c519bca3a59b6140d176415aff16e4e06f9e3 ; affected 88bd02c9472a166b706284a34a84f1243322d782 < bedb710b63ae1bd617e65d0a8cf6cea1200b3753 ; affected 88bd02c9472a166b706284a34a84f1243322d782 < b28a83ea4934215b5de906c3ee4fbfbc651573e0 ; affected 88bd02c9472a166b706284a34a84f1243322d782 < 019f9dda7f66e55eb94cd32e1d3fff5835f73fbc |
| Linux · Linux | affected 3.18 ; unaffected 0 < 3.18 ; unaffected 6.1.191 ≤ 6.1.* ; unaffected 6.12.114 ≤ 6.12.* ; unaffected 6.18.30 ≤ 6.18.* ; unaffected 7.0.7 ≤ 7.0.* |
Sources
| Source | Licence |
|---|---|
| CVE List (CVEProject cvelistV5) | CVE Program Terms of Use |
| EPSS (FIRST.org) | FIRST — attribution requested |
| ENISA EUVD | ENISA — reproduction authorised, source acknowledged |
| CERT-FR (ANSSI) | Licence Ouverte / Etalab 2.0 |
| NVD (NIST) via fkie-cad/nvd-json-data-feeds | Public domain — this product uses data from the NVD API but is not endorsed or certified by the NVD |