GHSA-44J2-H353-38W7
Vulnerability from github – Published: 2026-08-15 06:32 – Updated: 2026-08-17 06:33In 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]
{
"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"
}
]
}
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.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.