CVE-2026-23267 json
f2fs: fix IS_CHECKPOINTED flag inconsistency issue caused by concurrent atomic commit and checkpoint writes
published 2026-03-18 7 mo ago modified 2026-06-17 4 mo ago also EUVD-2026-12908
- cvss
- 5.5
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.1%
- EPSS 0.1% chance of exploitation in 30 days, percentile 1%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
f2fs: fix IS_CHECKPOINTED flag inconsistency issue caused by concurrent atomic commit and checkpoint writes
During SPO tests, when mounting F2FS, an -EINVAL error was returned from f2fs_recover_inode_page. The issue occurred under the following scenario
Thread A Thread B f2fs_ioc_commit_atomic_write - f2fs_do_sync_file // atomic = true - f2fs_fsync_node_pages : last_folio = inode folio : schedule before folio_lock(last_folio) f2fs_write_checkpoint - block_operations// writeback last_folio - schedule before f2fs_flush_nat_entries : set_fsync_mark(last_folio, 1) : set_dentry_mark(last_folio, 1) : folio_mark_dirty(last_folio) - __write_node_folio(last_folio) : f2fs_down_read(&sbi->node_write)//block - f2fs_flush_nat_entries : {struct nat_entry}->flag |= BIT(IS_CHECKPOINTED) - unblock_operations : f2fs_up_write(&sbi->node_write) f2fs_write_checkpoint//return : f2fs_do_write_node_page() f2fs_ioc_commit_atomic_write//return SPO
Thread A calls f2fs_need_dentry_mark(sbi, ino), and the last_folio has already been written once. However, the {struct nat_entry}->flag did not have the IS_CHECKPOINTED set, causing set_dentry_mark(last_folio, 1) and write last_folio again after Thread B finishes f2fs_write_checkpoint.
After SPO and reboot, it was detected that {struct node_info}->blk_addr was not NULL_ADDR because Thread B successfully write the checkpoint.
This issue only occurs in atomic write scenarios. For regular file fsync operations, the folio must be dirty. If block_operations->f2fs_sync_node_pages successfully submit the folio write, this path will not be executed. Otherwise, the f2fs_write_checkpoint will need to wait for the folio write submission to complete, as sbi->nr_pages[F2FS_DIRTY_NODES] > 0. Therefore, the situation where f2fs_need_dentry_mark checks that the {struct nat_entry}->flag /wo the IS_CHECKPOINTED flag, but the folio write has already been submitted, will not occur.
Therefore, for atomic file fsync, sbi->node_write should be acquired through __write_node_folio to ensure that the IS_CHECKPOINTED flag correctly indicates that the checkpoint write has been completed.
Patch / fix
- Linux Linux 6.1.164, 6.6.127, 6.12.74, 6.18.13, 6.19.3, 7.0
- linux Debian 12 6.1.164-1
- linux Debian 13 6.12.74-1
- linux Debian 14 6.18.13-1
debian advisories DEBIAN-CVE-2026-23267
- linux Ubuntu 24.04 LTS 6.8.0-134.134
- linux-aws Ubuntu 24.04 LTS 6.8.0-1060.63
- linux-gcp Ubuntu 24.04 LTS 6.8.0-1063.69
- linux-gke Ubuntu 24.04 LTS 6.8.0-1058.64
- linux-ibm Ubuntu 24.04 LTS 6.8.0-1060.61
- linux-azure Ubuntu 24.04 LTS 6.8.0-1063.71
- linux-gkeop Ubuntu 24.04 LTS 6.8.0-1045.48
- linux-raspi Ubuntu 24.04 LTS 6.8.0-1060.64
ubuntu advisories UBUNTU-CVE-2026-23267
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- git.kernel.org/stable/c/32bc3c9fe18881d50dd51fd5f26d19fe1190dc0d commit
- git.kernel.org/stable/c/75e19da068adf0dc5dd269dd157392434b9117d4 commit
- git.kernel.org/stable/c/962c167b0f262b9962207fbeaa531721d55ea00e commit
- git.kernel.org/stable/c/bd66b4c487d5091d2a65d6089e0de36f0c26a4c7 commit
- git.kernel.org/stable/c/ed81bc5885460905f9160e7b463e5708fd056324 commit
- git.kernel.org/stable/c/7633a7387eb4d0259d6bea945e1d3469cd135bbc commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-23267 updated
kernel: f2fs: fix IS_CHECKPOINTED flag inconsistency issue caused by concurrent atomic commit and checkpoint writes
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 more Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 more Red Hat Enterprise Linux 10 kernelnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
0.12% chance of exploitation in the next 30 days, higher than 1% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
Affected products
- Linux Linux
Classification
- Technology feeds
References
-
git.kernel.org
/stable/c/32bc3c9fe18881d50dd51fd5f26d19fe1190dc0d
patch
-
git.kernel.org
/stable/c/75e19da068adf0dc5dd269dd157392434b9117d4
patch
-
git.kernel.org
/stable/c/962c167b0f262b9962207fbeaa531721d55ea00e
patch
-
git.kernel.org
/stable/c/bd66b4c487d5091d2a65d6089e0de36f0c26a4c7
patch
-
git.kernel.org
/stable/c/ed81bc5885460905f9160e7b463e5708fd056324
patch
-
git.kernel.org
/stable/c/7633a7387eb4d0259d6bea945e1d3469cd135bbc
patch
Sources
- CVE List CVE-2026-23267
- NVD CVE-2026-23267
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.