← CVE Intelligence

CVE-2026-72159

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

Description (CNA)

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 (CNA)

Vendor / productVersions
Linux / Linuxaffected b657c95c11088d77fc1bfc9c84d940f778bf9d12 before 416d3e5f8a30ed04fe21ba7dc73c2841c3b56265; affected b657c95c11088d77fc1bfc9c84d940f778bf9d12 before ed0f938f946f16b772e99cb8c277ab57828e5be4; affected b657c95c11088d77fc1bfc9c84d940f778bf9d12 before 83f6756a7b71adec0a41ae68e079a38906d59c6c; affected b657c95c11088d77fc1bfc9c84d940f778bf9d12 before 38c1ef7ce50eb4af0f89038b8aba12396ddb9233; affected b657c95c11088d77fc1bfc9c84d940f778bf9d12 before d837068eefbc2651fe5789bf75a0f945710f7b8e; affected b657c95c11088d77fc1bfc9c84d940f778bf9d12 before 2174c68f623b74bd8690a4a6a4a52882d8ac3dc3; affected b657c95c11088d77fc1bfc9c84d940f778bf9d12 before 3bfeb436d4be6a2beb56cab344770e93e6b07260; affected b657c95c11088d77fc1bfc9c84d940f778bf9d12 before 7ebc672fab7a76e1e47e0f2fc1ee48118d27fde4
Linux / Linuxaffected 2.6.29; unaffected 0 before 2.6.29; unaffected 5.10.261 through 5.10.*; unaffected 5.15.212 through 5.15.*; unaffected 6.1.178 through 6.1.*; unaffected 6.6.145 through 6.6.*; unaffected 6.12.97 through 6.12.*; unaffected 6.18.40 through 6.18.*; unaffected 7.1.5 through 7.1.*; unaffected 7.2 through *

CWE

No CWE identifiers supplied.

References