CVE-2026-53017

Source
https://cve.org/CVERecord?id=CVE-2026-53017
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-53017.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-53017
Downstream
BELL (1)
CGA (78)
DEBIAN (1)
ROOT (5)
UBUNTU (1)
Published
2026-06-24T16:29:27Z
Modified
2026-10-28T02:31:15Z
Summary
f2fs: fix data loss caused by incorrect use of nat_entry flag
Details

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

f2fs: fix data loss caused by incorrect use of nat_entry flag

Data loss can occur when fsync is performed on a newly created file (before any checkpoint has been written) concurrently with a checkpoint operation. 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_flush_nat_entries
  • f2fs_fsync_node_pages // no dirty node
  • f2fs_need_inode_block_update // return false SPO and lost 'file A'

f2fs_flush_nat_entries() sets the IS_CHECKPOINTED and HAS_LAST_FSYNC flags for the nat_entry, but this does not mean that the checkpoint has actually completed successfully. However, f2fs_need_inode_block_update() checks these flags and incorrectly assumes that the checkpoint has finished.

The root cause is that the semantics of IS_CHECKPOINTED and HAS_LAST_FSYNC are only guaranteed after the checkpoint write fully completes.

This patch modifies f2fs_need_inode_block_update() to acquire the sbi->node_write lock before reading the nat_entry flags, ensuring that once IS_CHECKPOINTED and HAS_LAST_FSYNC are observed to be set, the checkpoint operation has already completed.

Database specific
{
    "cna_assigner":  "Linux",
    "osv_generated_from":  "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53017.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
e05df3b115e7308afbca652769b54e4549fcc723
Fixed
0645fa4d48e9b77d93f8b7a1c1fea58a97c2f8b0
Fixed
9fd3bcb54a6afea5fa8a828d010561143560b7c5
Fixed
cb06a07d835ba1ea250785a796243bb483e65816
Fixed
20cedb4d9f6b230d0ee469690b8f868f06a07c29
Fixed
238e14eb7226f883b72caccd2d37bf5707df066b

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-53017.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
3.8.0
Fixed
6.6.160
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.114
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.57
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
7.0.10

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-53017.json"