GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

GHSA-5WH8-RGP3-6J39

Vulnerability from github – Published: 2026-08-15 06:32 – Updated: 2026-08-15 06:32
VLAI
Details

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

Show details on source website

{
  "affected": [],
  "aliases": [
    "CVE-2026-72159"
  ],
  "database_specific": {
    "cwe_ids": [],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2026-08-15T06:21:33Z",
    "severity": null
  },
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nocfs2: reject non-inline dinodes with i_size and zero i_clusters\n\nOn a volume mounted without OCFS2_FEATURE_INCOMPAT_SPARSE_ALLOC, a\nnon-inline regular file with non-zero i_size and zero i_clusters is\nstructurally malformed: the extent map declares no allocated clusters yet\nthe size header claims content exists.  Keep rejecting that shape, but\nexpress it through a shared predicate so the same invariant is available\nto normal inode reads and online filecheck.\n\nThe same zero-cluster shape is also malformed for non-inline directories. \nocfs2 directory growth allocates backing storage before advancing i_size,\nand ocfs2_dir_foreach_blk_el() later walks until ctx-\u003epos reaches\ni_size_read(inode).  A forged directory dinode with a huge i_size and no\nclusters would repeatedly fail on holes while advancing through the\nclaimed size.\n\nSparse regular files remain exempt: on sparse-alloc volumes, truncate can\nlegitimately grow i_size without allocating clusters.  System inodes and\ninline-data dinodes also retain their separate storage rules.\n\nMirror the check in ocfs2_filecheck_validate_inode_block() as well. \nfilecheck reports through its own error namespace, so malformed\nsize/cluster state is logged as a filecheck invalid-inode result rather\nthan via ocfs2_error(), but it must not proceed into\nocfs2_populate_inode().",
  "id": "GHSA-5wh8-rgp3-6j39",
  "modified": "2026-08-15T06:32:14Z",
  "published": "2026-08-15T06:32:14Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-72159"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/2174c68f623b74bd8690a4a6a4a52882d8ac3dc3"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/38c1ef7ce50eb4af0f89038b8aba12396ddb9233"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/3bfeb436d4be6a2beb56cab344770e93e6b07260"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/416d3e5f8a30ed04fe21ba7dc73c2841c3b56265"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/7ebc672fab7a76e1e47e0f2fc1ee48118d27fde4"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/83f6756a7b71adec0a41ae68e079a38906d59c6c"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/d837068eefbc2651fe5789bf75a0f945710f7b8e"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/ed0f938f946f16b772e99cb8c277ab57828e5be4"
    }
  ],
  "schema_version": "1.4.0",
  "severity": []
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Loading…