CVE-2026-72159

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

State
Published
Severity
Not scored
Published
Aug 15, 2026
Updated
Aug 17, 2026
Reserved
Aug 9, 2026

Read the record on cve.org

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

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • b657c95c11088d77fc1bfc9c84d940f778bf9d12 to before 416d3e5f8a30ed04fe21ba7dc73c2841c3b56265Affected
  • b657c95c11088d77fc1bfc9c84d940f778bf9d12 to before ed0f938f946f16b772e99cb8c277ab57828e5be4Affected
  • b657c95c11088d77fc1bfc9c84d940f778bf9d12 to before 83f6756a7b71adec0a41ae68e079a38906d59c6cAffected
  • b657c95c11088d77fc1bfc9c84d940f778bf9d12 to before 38c1ef7ce50eb4af0f89038b8aba12396ddb9233Affected
  • b657c95c11088d77fc1bfc9c84d940f778bf9d12 to before d837068eefbc2651fe5789bf75a0f945710f7b8eAffected
  • b657c95c11088d77fc1bfc9c84d940f778bf9d12 to before 2174c68f623b74bd8690a4a6a4a52882d8ac3dc3Affected
  • b657c95c11088d77fc1bfc9c84d940f778bf9d12 to before 3bfeb436d4be6a2beb56cab344770e93e6b07260Affected
  • b657c95c11088d77fc1bfc9c84d940f778bf9d12 to before 7ebc672fab7a76e1e47e0f2fc1ee48118d27fde4Affected
LinuxLinux
  • 2.6.29Affected
  • before 2.6.29Not affected
  • 5.10.261 through 5.10.*Not affected
  • 5.15.212 through 5.15.*Not affected
  • 6.1.178 through 6.1.*Not affected
  • 6.6.145 through 6.6.*Not affected
  • 6.12.97 through 6.12.*Not affected
  • 6.18.40 through 6.18.*Not affected
  • 7.1.5 through 7.1.*Not affected
  • 7.2 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.