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

GHSA-44J2-H353-38W7

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

In the Linux kernel, the following vulnerability has been resolved:

fs/ntfs3: bound attr_off in UpdateResidentValue against data_off

In do_action()'s UpdateResidentValue case (fslog.c:3307), lrh->attr_off and lrh->redo_len come from the on-disk LRH. When they satisfy aoff + dlen < attr->res.data_off, the assignment

attr->res.data_size = cpu_to_le32(aoff + dlen - data_off);

underflows to ~4 GiB (e.g. 0xFFFFFFF9 when aoff=0x10, dlen=1, data_off=0x18). Subsequent code that reads attr->res.data_size to walk the resident attribute payload would then read up to 4 GiB past the 1024-byte MFT record allocation.

The existing mi_enum_attr() defense in fs/ntfs3/record.c:287 catches the corrupted data_size on the next attribute walk and fails the mount, but only on the path that walks all attributes. A read site that picks an attribute by name and reads its data_size without re-validating is not covered. Validate aoff against data_off and asize at the source.

Reproduced under UML+KASAN on mainline 8d90b09e6741 via pr_warn-only probe: with aoff=0x10 and data_off=0x18, the post-assignment data_size is 0xfffffff9 (mount then fails at -22 from mi_enum_attr).

[almaz.alexandrovich@paragon-software.com: clang-formatted the changes]

Show details on source website

{
  "affected": [],
  "aliases": [
    "CVE-2026-72195"
  ],
  "database_specific": {
    "cwe_ids": [],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2026-08-15T06:21:38Z",
    "severity": "HIGH"
  },
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nfs/ntfs3: bound attr_off in UpdateResidentValue against data_off\n\nIn do_action()\u0027s UpdateResidentValue case (fslog.c:3307),\nlrh-\u003eattr_off and lrh-\u003eredo_len come from the on-disk LRH.\nWhen they satisfy aoff + dlen \u003c attr-\u003eres.data_off, the\nassignment\n\n\tattr-\u003eres.data_size = cpu_to_le32(aoff + dlen - data_off);\n\nunderflows to ~4 GiB (e.g. 0xFFFFFFF9 when aoff=0x10, dlen=1,\ndata_off=0x18).  Subsequent code that reads attr-\u003eres.data_size\nto walk the resident attribute payload would then read up to\n4 GiB past the 1024-byte MFT record allocation.\n\nThe existing mi_enum_attr() defense in fs/ntfs3/record.c:287\ncatches the corrupted data_size on the next attribute walk\nand fails the mount, but only on the path that walks all\nattributes.  A read site that picks an attribute by name and\nreads its data_size without re-validating is not covered.\nValidate aoff against data_off and asize at the source.\n\nReproduced under UML+KASAN on mainline 8d90b09e6741 via\npr_warn-only probe: with aoff=0x10 and data_off=0x18, the\npost-assignment data_size is 0xfffffff9 (mount then fails\nat -22 from mi_enum_attr).\n\n[almaz.alexandrovich@paragon-software.com: clang-formatted the changes]",
  "id": "GHSA-44j2-h353-38w7",
  "modified": "2026-08-17T06:33:15Z",
  "published": "2026-08-15T06:32:15Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-72195"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/50b5e83384e7fed3d11d18b79ff350e9d6d89861"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/53c12f178f584dc5f836ffe2782138a6e9348ed9"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/546518468e6c9ea469669eef78f8cc380ad6e2ca"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/97758fd9756b5f09e9ddc6a5f6a569041acc8421"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/a89c66674283a0293c0f266dc57087a6114371a3"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/ab8761676d638c5be170aaf91b7ffdd451236616"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/d1570c48f49a693974d000251030370ee2e83539"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
      "type": "CVSS_V3"
    }
  ]
}



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…