CVE-2026-72159

Summary

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 Software

VendorProductVersion RangeStatus
LinuxLinuxb657c95c11088d77fc1bfc9c84d940f778bf9d12 < 416d3e5f8a30ed04fe21ba7dc73c2841c3b56265affected
LinuxLinuxb657c95c11088d77fc1bfc9c84d940f778bf9d12 < ed0f938f946f16b772e99cb8c277ab57828e5be4affected
LinuxLinuxb657c95c11088d77fc1bfc9c84d940f778bf9d12 < 83f6756a7b71adec0a41ae68e079a38906d59c6caffected
LinuxLinuxb657c95c11088d77fc1bfc9c84d940f778bf9d12 < 38c1ef7ce50eb4af0f89038b8aba12396ddb9233affected
LinuxLinuxb657c95c11088d77fc1bfc9c84d940f778bf9d12 < d837068eefbc2651fe5789bf75a0f945710f7b8eaffected
LinuxLinuxb657c95c11088d77fc1bfc9c84d940f778bf9d12 < 2174c68f623b74bd8690a4a6a4a52882d8ac3dc3affected
LinuxLinuxb657c95c11088d77fc1bfc9c84d940f778bf9d12 < 3bfeb436d4be6a2beb56cab344770e93e6b07260affected
LinuxLinuxb657c95c11088d77fc1bfc9c84d940f778bf9d12 < 7ebc672fab7a76e1e47e0f2fc1ee48118d27fde4affected
LinuxLinux2.6.29affected
LinuxLinux0 < 2.6.29unaffected
LinuxLinux5.10.261 <= 5.10.*unaffected
LinuxLinux5.15.212 <= 5.15.*unaffected
LinuxLinux6.1.178 <= 6.1.*unaffected
LinuxLinux6.6.145 <= 6.6.*unaffected
LinuxLinux6.12.97 <= 6.12.*unaffected
LinuxLinux6.18.40 <= 6.18.*unaffected
LinuxLinux7.1.5 <= 7.1.*unaffected
LinuxLinux7.2 <= *unaffected

Weaknesses

References