GHSA-GG5M-J9GF-RMHM
Vulnerability from github – Published: 2026-09-16 09:30 – Updated: 2026-09-16 09:30In the Linux kernel, the following vulnerability has been resolved:
fs/ntfs3: validate ef->size covers the record's name and value
When an EA record has a non-zero ef->size, ntfs_read_ea() only checks that the record fits in the remaining buffer (ea_size > bytes), not that ef->size is large enough to hold the record's own name_len + 1 + elength.
A crafted image can pass validation with, e.g., ef->size = 24 but elength = 0xffff. ntfs_get_ea() then trusts elength and copies it out of the undersized record, reading past the kmalloc(info->size) allocation and leaking heap memory to userspace via getxattr():
BUG: KASAN: slab-out-of-bounds in ntfs_get_ea (fs/ntfs3/xattr.c:302) Read of size 65535 at addr ffff888100794550 by task exploit __asan_memcpy (mm/kasan/shadow.c:105) ntfs_get_ea (fs/ntfs3/xattr.c:302) ntfs_getxattr (fs/ntfs3/xattr.c:848) __vfs_getxattr (fs/xattr.c:441) vfs_getxattr (fs/xattr.c:474) do_getxattr (fs/xattr.c:800) path_getxattrat (fs/xattr.c:868) do_syscall_64 (arch/x86/entry/syscall_64.c:94)
The buggy address is located 80 bytes inside of allocated 84-byte region in cache kmalloc-96
Compute the size the record needs and require ef->size to cover it.
{
"affected": [],
"aliases": [
"CVE-2026-89779"
],
"database_specific": {
"cwe_ids": [],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-09-16T09:17:08Z",
"severity": null
},
"details": "In the Linux kernel, the following vulnerability has been resolved:\n\nfs/ntfs3: validate ef-\u003esize covers the record\u0027s name and value\n\nWhen an EA record has a non-zero ef-\u003esize, ntfs_read_ea() only checks\nthat the record fits in the remaining buffer (ea_size \u003e bytes), not that\nef-\u003esize is large enough to hold the record\u0027s own name_len + 1 + elength.\n\nA crafted image can pass validation with, e.g., ef-\u003esize = 24 but\nelength = 0xffff. ntfs_get_ea() then trusts elength and copies it out of\nthe undersized record, reading past the kmalloc(info-\u003esize) allocation\nand leaking heap memory to userspace via getxattr():\n\n BUG: KASAN: slab-out-of-bounds in ntfs_get_ea (fs/ntfs3/xattr.c:302)\n Read of size 65535 at addr ffff888100794550 by task exploit\n __asan_memcpy (mm/kasan/shadow.c:105)\n ntfs_get_ea (fs/ntfs3/xattr.c:302)\n ntfs_getxattr (fs/ntfs3/xattr.c:848)\n __vfs_getxattr (fs/xattr.c:441)\n vfs_getxattr (fs/xattr.c:474)\n do_getxattr (fs/xattr.c:800)\n path_getxattrat (fs/xattr.c:868)\n do_syscall_64 (arch/x86/entry/syscall_64.c:94)\n\n The buggy address is located 80 bytes inside of\n allocated 84-byte region in cache kmalloc-96\n\nCompute the size the record needs and require ef-\u003esize to cover it.",
"id": "GHSA-gg5m-j9gf-rmhm",
"modified": "2026-09-16T09:30:30Z",
"published": "2026-09-16T09:30:30Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-89779"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/077df8464cf24f8ffc82fb6efec2ae600686e699"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/28a924c7e67e6d71abeb04860b61166fecb027fc"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/aab1880058ac767d3ea9388a9a7221c776c22c44"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/b27e68ad818a4ca2cef8f35f97e75d756714c818"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/c22f91d82cb9a29d22bdffdce6c803467984ad0c"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/c8a109c9e23a2c7fd548473dde728b2cb8188146"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/d585ed08308909c7e6fefb4e8a258aeb29b19ff9"
}
],
"schema_version": "1.4.0",
"severity": []
}
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.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.