CVE-2026-72159
N/A
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
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | b657c95c11088d77fc1bfc9c84d940f778bf9d12 < 416d3e5f8a30ed04fe21ba7dc73c2841c3b56265 | affected |
| Linux | Linux | b657c95c11088d77fc1bfc9c84d940f778bf9d12 < ed0f938f946f16b772e99cb8c277ab57828e5be4 | affected |
| Linux | Linux | b657c95c11088d77fc1bfc9c84d940f778bf9d12 < 83f6756a7b71adec0a41ae68e079a38906d59c6c | affected |
| Linux | Linux | b657c95c11088d77fc1bfc9c84d940f778bf9d12 < 38c1ef7ce50eb4af0f89038b8aba12396ddb9233 | affected |
| Linux | Linux | b657c95c11088d77fc1bfc9c84d940f778bf9d12 < d837068eefbc2651fe5789bf75a0f945710f7b8e | affected |
| Linux | Linux | b657c95c11088d77fc1bfc9c84d940f778bf9d12 < 2174c68f623b74bd8690a4a6a4a52882d8ac3dc3 | affected |
| Linux | Linux | b657c95c11088d77fc1bfc9c84d940f778bf9d12 < 3bfeb436d4be6a2beb56cab344770e93e6b07260 | affected |
| Linux | Linux | b657c95c11088d77fc1bfc9c84d940f778bf9d12 < 7ebc672fab7a76e1e47e0f2fc1ee48118d27fde4 | affected |
| Linux | Linux | 2.6.29 | affected |
| Linux | Linux | 0 < 2.6.29 | unaffected |
| Linux | Linux | 5.10.261 <= 5.10.* | unaffected |
| Linux | Linux | 5.15.212 <= 5.15.* | unaffected |
| Linux | Linux | 6.1.178 <= 6.1.* | unaffected |
| Linux | Linux | 6.6.145 <= 6.6.* | unaffected |
| Linux | Linux | 6.12.97 <= 6.12.* | unaffected |
| Linux | Linux | 6.18.40 <= 6.18.* | unaffected |
| Linux | Linux | 7.1.5 <= 7.1.* | unaffected |
| Linux | Linux | 7.2 <= * | unaffected |
Weaknesses
References
- https://git.kernel.org/stable/c/416d3e5f8a30ed04fe21ba7dc73c2841c3b56265
- https://git.kernel.org/stable/c/ed0f938f946f16b772e99cb8c277ab57828e5be4
- https://git.kernel.org/stable/c/83f6756a7b71adec0a41ae68e079a38906d59c6c
- https://git.kernel.org/stable/c/38c1ef7ce50eb4af0f89038b8aba12396ddb9233
- https://git.kernel.org/stable/c/d837068eefbc2651fe5789bf75a0f945710f7b8e
- https://git.kernel.org/stable/c/2174c68f623b74bd8690a4a6a4a52882d8ac3dc3
- https://git.kernel.org/stable/c/3bfeb436d4be6a2beb56cab344770e93e6b07260
- https://git.kernel.org/stable/c/7ebc672fab7a76e1e47e0f2fc1ee48118d27fde4
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.