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: 7.0 High
EPSS: < 1% Very Low
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

With a CVSS score of 7.0, 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 28, 2026 at 14:06 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 28, 2026 at 14:06 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4606-1 linux security update
History

Thu, 28 May 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-372
References
Metrics threat_severity

None

cvssV3_1

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

threat_severity

Moderate


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-30T10:41:46.666Z

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-06-17T10:52:43.090

Link: CVE-2026-45912

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-05-27T00:00:00Z

Links: CVE-2026-45912 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-05-28T14:15:19Z

Weaknesses
  • CWE-372

    Incomplete Internal State Distinction