Skip to content
CVE PROGRAM SOURCE RECORDUnscored

CVE-2026-72159

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

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 products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • b657c95c11088d77fc1bfc9c84d940f778bf9d12 to < 416d3e5f8a30ed04fe21ba7dc73c2841c3b56265affected
  • b657c95c11088d77fc1bfc9c84d940f778bf9d12 to < ed0f938f946f16b772e99cb8c277ab57828e5be4affected
  • b657c95c11088d77fc1bfc9c84d940f778bf9d12 to < 83f6756a7b71adec0a41ae68e079a38906d59c6caffected
  • b657c95c11088d77fc1bfc9c84d940f778bf9d12 to < 38c1ef7ce50eb4af0f89038b8aba12396ddb9233affected
  • b657c95c11088d77fc1bfc9c84d940f778bf9d12 to < d837068eefbc2651fe5789bf75a0f945710f7b8eaffected
  • b657c95c11088d77fc1bfc9c84d940f778bf9d12 to < 2174c68f623b74bd8690a4a6a4a52882d8ac3dc3affected
  • b657c95c11088d77fc1bfc9c84d940f778bf9d12 to < 3bfeb436d4be6a2beb56cab344770e93e6b07260affected
  • b657c95c11088d77fc1bfc9c84d940f778bf9d12 to < 7ebc672fab7a76e1e47e0f2fc1ee48118d27fde4affected

Linux Linux

Default version status: affected

  • 2.6.29affected
  • 0 to < 2.6.29unaffected
  • 5.10.261 to ≤ 5.10.*unaffected
  • 5.15.212 to ≤ 5.15.*unaffected
  • 6.1.178 to ≤ 6.1.*unaffected
  • 6.6.145 to ≤ 6.6.*unaffected
  • 6.12.97 to ≤ 6.12.*unaffected
  • 6.18.40 to ≤ 6.18.*unaffected
  • 7.1.5 to ≤ 7.1.*unaffected
  • 7.2 to ≤ *unaffected

References