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().
INFO
Published Date :
Aug. 15, 2026, 6:21 a.m.
Last Modified :
Aug. 17, 2026, 6:18 a.m.
Remotely Exploit :
No
Source :
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Solution
- Apply the latest Linux kernel updates.
- Ensure file systems are mounted with correct features.
- Verify inode structures for malformed state.
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2026-72159.
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2026-72159 is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2026-72159
weaknesses.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2026-72159 vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2026-72159 vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Aug. 17, 2026
Action Type Old Value New Value Changed Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': '416d3e5f8a30ed04fe21ba7dc73c2841c3b56265', 'versionType': 'git'}, {'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': 'ed0f938f946f16b772e99cb8c277ab57828e5be4', 'versionType': 'git'}, {'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': '83f6756a7b71adec0a41ae68e079a38906d59c6c', 'versionType': 'git'}, {'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': '38c1ef7ce50eb4af0f89038b8aba12396ddb9233', 'versionType': 'git'}, {'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': 'd837068eefbc2651fe5789bf75a0f945710f7b8e', 'versionType': 'git'}, {'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': '2174c68f623b74bd8690a4a6a4a52882d8ac3dc3', 'versionType': 'git'}, {'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': '3bfeb436d4be6a2beb56cab344770e93e6b07260', 'versionType': 'git'}, {'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': '7ebc672fab7a76e1e47e0f2fc1ee48118d27fde4', 'versionType': 'git'}], 'programFiles': ['fs/ocfs2/inode.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '2.6.29'}, {'status': 'unaffected', 'version': '0', 'lessThan': '2.6.29', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '5.10.261', 'versionType': 'semver', 'lessThanOrEqual': '5.10.*'}, {'status': 'unaffected', 'version': '5.15.212', 'versionType': 'semver', 'lessThanOrEqual': '5.15.*'}, {'status': 'unaffected', 'version': '6.1.178', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.145', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.97', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.40', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.5', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2-rc1', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['fs/ocfs2/inode.c'], 'defaultStatus': 'affected'}] [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': '416d3e5f8a30ed04fe21ba7dc73c2841c3b56265', 'versionType': 'git'}, {'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': 'ed0f938f946f16b772e99cb8c277ab57828e5be4', 'versionType': 'git'}, {'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': '83f6756a7b71adec0a41ae68e079a38906d59c6c', 'versionType': 'git'}, {'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': '38c1ef7ce50eb4af0f89038b8aba12396ddb9233', 'versionType': 'git'}, {'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': 'd837068eefbc2651fe5789bf75a0f945710f7b8e', 'versionType': 'git'}, {'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': '2174c68f623b74bd8690a4a6a4a52882d8ac3dc3', 'versionType': 'git'}, {'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': '3bfeb436d4be6a2beb56cab344770e93e6b07260', 'versionType': 'git'}, {'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': '7ebc672fab7a76e1e47e0f2fc1ee48118d27fde4', 'versionType': 'git'}], 'programFiles': ['fs/ocfs2/inode.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '2.6.29'}, {'status': 'unaffected', 'version': '0', 'lessThan': '2.6.29', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '5.10.261', 'versionType': 'semver', 'lessThanOrEqual': '5.10.*'}, {'status': 'unaffected', 'version': '5.15.212', 'versionType': 'semver', 'lessThanOrEqual': '5.15.*'}, {'status': 'unaffected', 'version': '6.1.178', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.145', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.97', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.40', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.5', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['fs/ocfs2/inode.c'], 'defaultStatus': 'affected'}] -
New CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Aug. 15, 2026
Action Type Old Value New Value Added Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': '416d3e5f8a30ed04fe21ba7dc73c2841c3b56265', 'versionType': 'git'}, {'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': 'ed0f938f946f16b772e99cb8c277ab57828e5be4', 'versionType': 'git'}, {'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': '83f6756a7b71adec0a41ae68e079a38906d59c6c', 'versionType': 'git'}, {'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': '38c1ef7ce50eb4af0f89038b8aba12396ddb9233', 'versionType': 'git'}, {'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': 'd837068eefbc2651fe5789bf75a0f945710f7b8e', 'versionType': 'git'}, {'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': '2174c68f623b74bd8690a4a6a4a52882d8ac3dc3', 'versionType': 'git'}, {'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': '3bfeb436d4be6a2beb56cab344770e93e6b07260', 'versionType': 'git'}, {'status': 'affected', 'version': 'b657c95c11088d77fc1bfc9c84d940f778bf9d12', 'lessThan': '7ebc672fab7a76e1e47e0f2fc1ee48118d27fde4', 'versionType': 'git'}], 'programFiles': ['fs/ocfs2/inode.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '2.6.29'}, {'status': 'unaffected', 'version': '0', 'lessThan': '2.6.29', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '5.10.261', 'versionType': 'semver', 'lessThanOrEqual': '5.10.*'}, {'status': 'unaffected', 'version': '5.15.212', 'versionType': 'semver', 'lessThanOrEqual': '5.15.*'}, {'status': 'unaffected', 'version': '6.1.178', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.145', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.97', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.40', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.5', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2-rc1', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['fs/ocfs2/inode.c'], 'defaultStatus': 'affected'}] Added 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(). Added Reference https://git.kernel.org/stable/c/2174c68f623b74bd8690a4a6a4a52882d8ac3dc3 Added Reference https://git.kernel.org/stable/c/38c1ef7ce50eb4af0f89038b8aba12396ddb9233 Added Reference https://git.kernel.org/stable/c/3bfeb436d4be6a2beb56cab344770e93e6b07260 Added Reference https://git.kernel.org/stable/c/416d3e5f8a30ed04fe21ba7dc73c2841c3b56265 Added Reference https://git.kernel.org/stable/c/7ebc672fab7a76e1e47e0f2fc1ee48118d27fde4 Added Reference https://git.kernel.org/stable/c/83f6756a7b71adec0a41ae68e079a38906d59c6c Added Reference https://git.kernel.org/stable/c/d837068eefbc2651fe5789bf75a0f945710f7b8e Added Reference https://git.kernel.org/stable/c/ed0f938f946f16b772e99cb8c277ab57828e5be4