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

ext4: don't cache extent during splitting extent

Caching extents during the splitting process is risky, as it may result
in stale extents remaining in the status tree. Moreover, in most cases,
the corresponding extent block entries are likely already cached before
the split happens, making caching here not particularly useful.

Assume we have an unwritten extent, and then DIO writes the first half.

[UUUUUUUUUUUUUUUU] on-disk extent U: unwritten extent
[UUUUUUUUUUUUUUUU] extent status tree
|<- ->| ----> dio write this range

First, when ext4_split_extent_at() splits this extent, it truncates the
existing extent and then inserts a new one. During this process, this
extent status entry may be shrunk, and calls to ext4_find_extent() and
ext4_cache_extents() may occur, which could potentially insert the
truncated range as a hole into the extent status tree. After the split
is completed, this hole is not replaced with the correct status.

[UUUUUUU|UUUUUUUU] on-disk extent U: unwritten extent
[UUUUUUU|HHHHHHHH] extent status tree H: hole

Then, the outer calling functions will not correct this remaining hole
extent either. Finally, if we perform a delayed buffer write on this
latter part, it will re-insert the delayed extent and cause an error in
space accounting.

In adition, if the unwritten extent cache is not shrunk during the
splitting, ext4_cache_extents() also conflicts with existing extents
when caching extents. In the future, we will add checks when caching
extents, which will trigger a warning. Therefore, Do not cache extents
that are being split.
Published: 2026-05-27
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The flaw in the Linux kernel’s ext4 file system prevents proper caching of extents during the split operation. When an unwritten extent is divided, the status tree can be left with a hole that is not corrected, and subsequent delayed buffer writes may re‑insert the wrong extent data. This mismatch silently corrupts the file system’s space accounting, potentially leading to data loss, corrupted files, or unexpected file system behavior. The weakness stems from improper handling of cached extents and can compromise file integrity and availability.

Affected Systems

This vulnerability affects all Linux kernel builds containing the ext4 filesystem, as indicated by the generic Linux kernel CPE. Any system running a kernel version that has not yet incorporated the patch from commit 4c2d9dac4d328244f9365b0a1fa27ec802821820 and related fixes is susceptible.

Risk and Exploitability

Although a CVSS score is not listed, the defect allows an attacker with the ability to write files to the underlying ext4 volume to cause subtle metadata corruption. The EPSS score is not available and the issue is not listed in the CISA KEV catalog, suggesting limited public exploitation data at the time of reporting. Nonetheless, the bug can be triggered by normal file write operations (including DIO writes) and can cause denial‑of‑service or data integrity problems if not addressed.

Generated by OpenCVE AI on May 27, 2026 at 16:35 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to a kernel version that includes the ext4 split‑extent cache fix (e.g., a stable release after commit 4c2d9dac4d328244f9365b0a1fa27ec802821820).
  • If using a custom or patched kernel, apply the necessary commit from the Linux kernel repository and recompile the kernel, then reboot to enforce the change.
  • After the kernel upgrade or patch, verify filesystem integrity using tools such as e2fsck on unmounted volumes or run fsck during boot to detect and repair any residual space‑accounting inconsistencies.

Generated by OpenCVE AI on May 27, 2026 at 16:35 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 27 May 2026 14:15:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: ext4: don't cache extent during splitting extent Caching extents during the splitting process is risky, as it may result in stale extents remaining in the status tree. Moreover, in most cases, the corresponding extent block entries are likely already cached before the split happens, making caching here not particularly useful. Assume we have an unwritten extent, and then DIO writes the first half. [UUUUUUUUUUUUUUUU] on-disk extent U: unwritten extent [UUUUUUUUUUUUUUUU] extent status tree |<- ->| ----> dio write this range First, when ext4_split_extent_at() splits this extent, it truncates the existing extent and then inserts a new one. During this process, this extent status entry may be shrunk, and calls to ext4_find_extent() and ext4_cache_extents() may occur, which could potentially insert the truncated range as a hole into the extent status tree. After the split is completed, this hole is not replaced with the correct status. [UUUUUUU|UUUUUUUU] on-disk extent U: unwritten extent [UUUUUUU|HHHHHHHH] extent status tree H: hole Then, the outer calling functions will not correct this remaining hole extent either. Finally, if we perform a delayed buffer write on this latter part, it will re-insert the delayed extent and cause an error in space accounting. In adition, if the unwritten extent cache is not shrunk during the splitting, ext4_cache_extents() also conflicts with existing extents when caching extents. In the future, we will add checks when caching extents, which will trigger a warning. Therefore, Do not cache extents that are being split.
Title ext4: don't cache extent during splitting extent
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-05-27T12:17:27.805Z

Reserved: 2026-05-13T15:03:33.085Z

Link: CVE-2026-45912

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-05-27T14:17:05.867

Modified: 2026-05-27T14:48:03.013

Link: CVE-2026-45912

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-05-27T21:15:25Z

Weaknesses

No weakness.