CVE-2026-72159

ocfs2: reject non-inline dinodes with i_size and zero i_clusters

N/A
Published: August 15, 2026 at 05:53 AM UTC
Updated: August 17, 2026 at 06:18 AM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
N/A
Exploit prediction
EPSS 0.2%

Description

In the Linux kernel, the following vulnerability has been resolved: ocfs2: reject non-inline dinodes with i_size and zero i_clusters On a volume mounted without OCFS2_FEATURE_INCOMPAT_SPARSE_ALLOC, a non-inline regular file with non-zero i_size and zero i_clusters is structurally malformed: the extent map declares no allocated clusters yet the size header claims content exists. Keep rejecting that shape, but express it through a shared predicate so the same invariant is available to normal inode reads and online filecheck. The same zero-cluster shape is also malformed for non-inline directories. ocfs2 directory growth allocates backing storage before advancing i_size, and ocfs2_dir_foreach_blk_el() later walks until ctx->pos reaches i_size_read(inode). A forged directory dinode with a huge i_size and no clusters would repeatedly fail on holes while advancing through the claimed size. Sparse regular files remain exempt: on sparse-alloc volumes, truncate can legitimately grow i_size without allocating clusters. System inodes and inline-data dinodes also retain their separate storage rules. Mirror the check in ocfs2_filecheck_validate_inode_block() as well. filecheck reports through its own error namespace, so malformed size/cluster state is logged as a filecheck invalid-inode result rather than via ocfs2_error(), but it must not proceed into ocfs2_populate_inode().

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

2.6.29 ≤ v < 5.10.2612.6.29 ≤ v < 5.15.2122.6.29 ≤ v < 6.1.1782.6.29 ≤ v < 6.12.972.6.29 ≤ v < 6.18.402.6.29 ≤ v < 6.6.1452.6.29 ≤ v < 7.1.52.6.29 ≤ v < 7.22.6.29b657c95c11088d77fc1bfc9c84d940f778bf9d12
Vendor states this is fixed in 2174c68f623b74bd8690a4a6a4a52882d8ac3dc3 (fixed)
Vendor states this is fixed in 38c1ef7ce50eb4af0f89038b8aba12396ddb9233 (fixed)
Vendor states this is fixed in 3bfeb436d4be6a2beb56cab344770e93e6b07260 (fixed)
Vendor states this is fixed in 416d3e5f8a30ed04fe21ba7dc73c2841c3b56265 (fixed)
Vendor states this is fixed in 7ebc672fab7a76e1e47e0f2fc1ee48118d27fde4 (fixed)
Vendor states this is fixed in 83f6756a7b71adec0a41ae68e079a38906d59c6c (fixed)
Vendor states this is fixed in d837068eefbc2651fe5789bf75a0f945710f7b8e (fixed)
Vendor states this is fixed in ed0f938f946f16b772e99cb8c277ab57828e5be4 (fixed)
Vendor states this is fixed in 2.6.29 (unaffected)
Vendor states this is fixed in 5.10.261 (unaffected)
Vendor states this is fixed in 5.15.212 (unaffected)
Vendor states this is fixed in 6.1.178 (unaffected)
Vendor states this is fixed in 6.12.97 (unaffected)
Vendor states this is fixed in 6.18.40 (unaffected)
Vendor states this is fixed in 6.6.145 (unaffected)
Vendor states this is fixed in 7.1.5 (unaffected)
Vendor states this is fixed in 7.2 (unaffected)

Remediation

No guide yet

No remediation guidance has been written for this CVE yet, and no fixed version or vendor advisory is recorded against it.

Quick Info

StatusRECEIVED

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card