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

f2fs: fix incorrect FI_NO_EXTENT handling in __destroy_extent_node()

When __destroy_extent_node() sets the inode flag FI_NO_EXTENT, it does
not reset the length of the largest extent to 0 and update the inode
folio. Since modifications to the extent tree are disallowed afterward,
the cached largest extent may become stale. This can trigger the
following error in xfstests generic/388:

F2FS-fs (dm-0): sanity_check_extent_cache: inode (ino=1761) extent info [220057, 57, 6] is incorrect, run fsck to fix

In the f2fs_drop_inode path, __destroy_extent_node() does not need to
guarantee that et->node_cnt is 0, because concurrency with writeback
is expected in this path, and writeback may update the extent cache.

This patch reverts commit ed78aeebef05 ("f2fs: fix node_cnt race between
extent node destroy and writeback"), and remove the unnecessary zero
check of et->node_cnt.
Published: 2026-07-19
Score: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability resides in the Linux kernel’s f2fs implementation, specifically the __destroy_extent_node() function. When the inode flag FI_NO_EXTENT is set, the function fails to clear the cached largest extent length and does not update the inode’s folio state. Because modifications to the extent tree are then prohibited, the stale cached data may write incorrect values to the inode. A tester found that this leads to the error in xfstests: sanity_check_extent_cache reporting an incorrect extent, which indicates that the filesystem can become inconsistent and may require fsck to correct. This flaw can therefore enable integrity violations or potentially lead to silent data corruption within the f2fs filesystem.

Affected Systems

Vendor Linux; product Linux kernel; all kernel versions that ship the f2fs driver before the fix via the referenced patch. The CVE references a commit that reverts an earlier change and removes an unnecessary check, but the exact affected release range is not enumerated. Therefore any system running an unpatched Linux kernel that includes the f2fs filesystem and has not yet incorporated the patch is susceptible.

Risk and Exploitability

With a CVSS base score of 7.8 the flaw is considered high severity. The EPSS rating is below 1%, and the vulnerability is not listed in CISA's KEV database; thus it is unlikely to be actively exploited at this time. The likely attack vector is local or privileged kernel access – based on the description, it is inferred that an attacker must have root or a compromised kernel module to trigger the incorrect flag handling or create conditions that expose stale extent data. Even without remote exploitable effects, silent corruption can damage data integrity and could trigger a denial-of-service or lower availability if the file system becomes unusable and requires fsck.

Generated by OpenCVE AI on July 30, 2026 at 22:14 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the f2fs extent node fix or apply the patch that reverts the erroneous commit and removes the node count check.
  • Reboot the system to ensure the updated kernel is in use.
  • Run fsck on all f2fs filesystems to detect and correct any stale extent information that may remain from the corrupted state.

Generated by OpenCVE AI on July 30, 2026 at 22:14 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 21 Jul 2026 00:15:00 +0000


Mon, 20 Jul 2026 14:45:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Sun, 19 Jul 2026 12:15:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: f2fs: fix incorrect FI_NO_EXTENT handling in __destroy_extent_node() When __destroy_extent_node() sets the inode flag FI_NO_EXTENT, it does not reset the length of the largest extent to 0 and update the inode folio. Since modifications to the extent tree are disallowed afterward, the cached largest extent may become stale. This can trigger the following error in xfstests generic/388: F2FS-fs (dm-0): sanity_check_extent_cache: inode (ino=1761) extent info [220057, 57, 6] is incorrect, run fsck to fix In the f2fs_drop_inode path, __destroy_extent_node() does not need to guarantee that et->node_cnt is 0, because concurrency with writeback is expected in this path, and writeback may update the extent cache. This patch reverts commit ed78aeebef05 ("f2fs: fix node_cnt race between extent node destroy and writeback"), and remove the unnecessary zero check of et->node_cnt.
Title f2fs: fix incorrect FI_NO_EXTENT handling in __destroy_extent_node()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-05T12:35:58.226Z

Reserved: 2026-07-19T07:54:57.013Z

Link: CVE-2026-63812

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

Severity :

Publid Date: 2026-07-19T00:00:00Z

Links: CVE-2026-63812 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-07-30T22:15:13Z

Weaknesses
  • CWE-821

    Incorrect Synchronization