# CVE-2026-72159: ocfs2: reject non-inline dinodes with i_size and zero i_clusters

Status: published. Published: 2026-08-15. Updated: 2026-11-06.

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

## Remediation

No remediation reported in collected sources

## Affected products and versions

- Linux / Linux: ≥ b657c95c11088d77fc1bfc9c84d940f778bf9d12; < 416d3e5f8a30ed04fe21ba7dc73c2841c3b56265 (affected, git); ≥ b657c95c11088d77fc1bfc9c84d940f778bf9d12; < ed0f938f946f16b772e99cb8c277ab57828e5be4 (affected, git); ≥ b657c95c11088d77fc1bfc9c84d940f778bf9d12; < 83f6756a7b71adec0a41ae68e079a38906d59c6c (affected, git); ≥ b657c95c11088d77fc1bfc9c84d940f778bf9d12; < 38c1ef7ce50eb4af0f89038b8aba12396ddb9233 (affected, git); ≥ b657c95c11088d77fc1bfc9c84d940f778bf9d12; < d837068eefbc2651fe5789bf75a0f945710f7b8e (affected, git); ≥ b657c95c11088d77fc1bfc9c84d940f778bf9d12; < 2174c68f623b74bd8690a4a6a4a52882d8ac3dc3 (affected, git); ≥ b657c95c11088d77fc1bfc9c84d940f778bf9d12; < 3bfeb436d4be6a2beb56cab344770e93e6b07260 (affected, git); ≥ b657c95c11088d77fc1bfc9c84d940f778bf9d12; < 7ebc672fab7a76e1e47e0f2fc1ee48118d27fde4 (affected, git). Source: CNA: Linux
- Linux / Linux: 2.6.29 (affected); ≥ 0; < 2.6.29 (unaffected, semver); ≥ 5.10.261; ≤ 5.10.* (unaffected, semver); ≥ 5.15.212; ≤ 5.15.* (unaffected, semver); ≥ 6.1.178; ≤ 6.1.* (unaffected, semver); ≥ 6.6.145; ≤ 6.6.* (unaffected, semver); ≥ 6.12.97; ≤ 6.12.* (unaffected, semver); ≥ 6.18.40; ≤ 6.18.* (unaffected, semver); ≥ 7.1.5; ≤ 7.1.* (unaffected, semver); ≥ 7.2; ≤ * (unaffected, original_commit_for_fix). Source: CNA: Linux

## Severity and prioritization

- CISA KEV: No listing in collected sources

- EPSS: 0.22% as of 2026-11-06; percentile 12.56%

- SSVC: exploitation none; automatable no; technical impact partial; source ADP: CISA-ADP

- Weaknesses: Not reported

## Exploit evidence

No exploit evidence in collected sources. This is not proof of no exploitation.

## References

- https://git.kernel.org/stable/c/416d3e5f8a30ed04fe21ba7dc73c2841c3b56265 (CNA: Linux)

- https://git.kernel.org/stable/c/ed0f938f946f16b772e99cb8c277ab57828e5be4 (CNA: Linux)

- https://git.kernel.org/stable/c/83f6756a7b71adec0a41ae68e079a38906d59c6c (CNA: Linux)

- https://git.kernel.org/stable/c/38c1ef7ce50eb4af0f89038b8aba12396ddb9233 (CNA: Linux)

- https://git.kernel.org/stable/c/d837068eefbc2651fe5789bf75a0f945710f7b8e (CNA: Linux)

- https://git.kernel.org/stable/c/2174c68f623b74bd8690a4a6a4a52882d8ac3dc3 (CNA: Linux)

- https://git.kernel.org/stable/c/3bfeb436d4be6a2beb56cab344770e93e6b07260 (CNA: Linux)

- https://git.kernel.org/stable/c/7ebc672fab7a76e1e47e0f2fc1ee48118d27fde4 (CNA: Linux)

- https://git.kernel.org/stable/c/2174c68f623b74bd8690a4a6a4a52882d8ac3dc3 (416baaa9-dc9f-4396-8d5f-8c081fb06d67)

- https://git.kernel.org/stable/c/38c1ef7ce50eb4af0f89038b8aba12396ddb9233 (416baaa9-dc9f-4396-8d5f-8c081fb06d67)

- https://git.kernel.org/stable/c/3bfeb436d4be6a2beb56cab344770e93e6b07260 (416baaa9-dc9f-4396-8d5f-8c081fb06d67)

- https://git.kernel.org/stable/c/416d3e5f8a30ed04fe21ba7dc73c2841c3b56265 (416baaa9-dc9f-4396-8d5f-8c081fb06d67)

- https://git.kernel.org/stable/c/7ebc672fab7a76e1e47e0f2fc1ee48118d27fde4 (416baaa9-dc9f-4396-8d5f-8c081fb06d67)

- https://git.kernel.org/stable/c/83f6756a7b71adec0a41ae68e079a38906d59c6c (416baaa9-dc9f-4396-8d5f-8c081fb06d67)

- https://git.kernel.org/stable/c/d837068eefbc2651fe5789bf75a0f945710f7b8e (416baaa9-dc9f-4396-8d5f-8c081fb06d67)

- https://git.kernel.org/stable/c/ed0f938f946f16b772e99cb8c277ab57828e5be4 (416baaa9-dc9f-4396-8d5f-8c081fb06d67)

## Provenance

- CNA: Linux: https://www.cve.org/CVERecord?id=CVE-2026-72159; retrieved 2026-11-06; source updated 2026-11-06

- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-72159; retrieved 2026-11-06; source updated 2026-11-06

- FIRST EPSS: https://api.first.org/data/v1/epss?cve=CVE-2026-72159; retrieved 2026-11-06; source updated Not reported

Revision: dac62a66355ede07dc601472959652e2f2f2b4964a6981fa61f5276109f71d44

Canonical: https://y2.dev/cve/CVE-2026-72159

## Agent and API access

Public CVE pages, Markdown, and JSON are free to read without an account or API key.

- Public catalog: https://y2.dev/cve/index.json. Follow nextCursor with the same search, filters, sort, and limit (1–100). A null cursor marks the end.

- WebMCP: search_cve_disclosures, get_cve_disclosure, get_cve_page_markdown, get_y2_cve_access. Available in compatible browsers.

- Cyber API: https://api.y2.dev/api/v2/cyber/cves and https://api.y2.dev/api/v2/cyber/cves/{cveId}.

- Y2 Pro or Elite: create a workspace API key with the intel:cyber scope and send Authorization: Bearer <Y2_API_KEY>. Setup: https://y2.dev/docs/api/create-key.

- x402: Pay per request without an account or API key. Omit Authorization, read the HTTP 402 PAYMENT-REQUIRED challenge, validate its current requirements, and retry with PAYMENT-SIGNATURE through an authorized payment client. These browser tools never make payments. Guide: https://y2.dev/docs/api/x402.

- OpenAPI: https://y2.dev/api/openapi.yaml. Agent access metadata: https://y2.dev/cve/agent.json.

Collected public records only. Check source status for coverage and freshness.