GHSA-RC9G-R7VC-2QQ2
Vulnerability from github – Published: 2026-09-24 18:31 – Updated: 2026-09-24 18:31In the Linux kernel, the following vulnerability has been resolved:
fs/ntfs3: preserve non-DOS attribute bits in system.dos_attrib
[BUG] A corrupted ntfs3 image can hit a NULL function pointer call in generic_perform_write() after toggling system.ntfs_attrib and then overwriting system.dos_attrib on the same file.
BUG: kernel NULL pointer dereference, address: 0000000000000000 #PF: supervisor instruction fetch in kernel mode #PF: error_code(0x0010) - not-present page PGD bed5067 P4D bed5067 PUD 0 Oops: Oops: 0010 [#1] SMP KASAN NOPTI RIP: 0010:0x0 Code: Unable to access opcode bytes at 0xffffffffffffffd6. RSP: 0018:ffff88801025f988 EFLAGS: 00010246 Call Trace: generic_perform_write+0x409/0x8c0 mm/filemap.c:4255 __generic_file_write_iter+0x1bb/0x200 mm/filemap.c:4372 ntfs_file_write_iter+0xcd9/0x1c20 fs/ntfs3/file.c:1253 new_sync_write fs/read_write.c:593 [inline] vfs_write+0x63b/0xf70 fs/read_write.c:686 ksys_write+0x133/0x250 fs/read_write.c:738 __do_sys_write fs/read_write.c:749 [inline] __se_sys_write fs/read_write.c:746 [inline] __x64_sys_write+0x77/0xc0 fs/read_write.c:746 ...
[CAUSE] system.ntfs_attrib updates ATTR_DATA flags via ni_new_attr_flags() and switches i_mapping->a_ops to ntfs_aops_cmpr when FILE_ATTRIBUTE_COMPRESSED is set. system.dos_attrib then overwrites ni->std_fa from a one-byte DOS attribute value, clearing the compression bit without updating ATTR_DATA or the mapping operations.
Old buffered writes use is_compressed(ni) to choose __generic_file_write_iter(). That leaves generic_perform_write() calling a NULL write_begin callback from ntfs_aops_cmpr.
[FIX] Treat system.dos_attrib as a low-byte DOS attribute update and preserve the existing non-DOS attribute bits in ni->std_fa. This keeps compressed and sparse state consistent with ATTR_DATA and the mapping operations while keeping the existing DOS attribute semantics intact.
{
"affected": [],
"aliases": [
"CVE-2026-97439"
],
"database_specific": {
"cwe_ids": [],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-09-24T17:17:22Z",
"severity": null
},
"details": "In the Linux kernel, the following vulnerability has been resolved:\n\nfs/ntfs3: preserve non-DOS attribute bits in system.dos_attrib\n\n[BUG]\nA corrupted ntfs3 image can hit a NULL function pointer call in\ngeneric_perform_write() after toggling system.ntfs_attrib and then\noverwriting system.dos_attrib on the same file.\n\nBUG: kernel NULL pointer dereference, address: 0000000000000000\n\\#PF: supervisor instruction fetch in kernel mode\n\\#PF: error_code(0x0010) - not-present page\nPGD bed5067 P4D bed5067 PUD 0\nOops: Oops: 0010 [#1] SMP KASAN NOPTI\nRIP: 0010:0x0\nCode: Unable to access opcode bytes at 0xffffffffffffffd6.\nRSP: 0018:ffff88801025f988 EFLAGS: 00010246\nCall Trace:\n generic_perform_write+0x409/0x8c0 mm/filemap.c:4255\n __generic_file_write_iter+0x1bb/0x200 mm/filemap.c:4372\n ntfs_file_write_iter+0xcd9/0x1c20 fs/ntfs3/file.c:1253\n new_sync_write fs/read_write.c:593 [inline]\n vfs_write+0x63b/0xf70 fs/read_write.c:686\n ksys_write+0x133/0x250 fs/read_write.c:738\n __do_sys_write fs/read_write.c:749 [inline]\n __se_sys_write fs/read_write.c:746 [inline]\n __x64_sys_write+0x77/0xc0 fs/read_write.c:746\n ...\n\n[CAUSE]\nsystem.ntfs_attrib updates ATTR_DATA flags via ni_new_attr_flags()\nand switches i_mapping-\u003ea_ops to ntfs_aops_cmpr when\nFILE_ATTRIBUTE_COMPRESSED is set. system.dos_attrib then overwrites\nni-\u003estd_fa from a one-byte DOS attribute value, clearing the compression\nbit without updating ATTR_DATA or the mapping operations.\n\nOld buffered writes use is_compressed(ni) to choose\n__generic_file_write_iter(). That leaves generic_perform_write() calling\na NULL write_begin callback from ntfs_aops_cmpr.\n\n[FIX]\nTreat system.dos_attrib as a low-byte DOS attribute update and preserve the\nexisting non-DOS attribute bits in ni-\u003estd_fa. This keeps compressed and\nsparse state consistent with ATTR_DATA and the mapping operations while\nkeeping the existing DOS attribute semantics intact.",
"id": "GHSA-rc9g-r7vc-2qq2",
"modified": "2026-09-24T18:31:33Z",
"published": "2026-09-24T18:31:32Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-97439"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/2de91ae285b0b878604d2bd83c3c395a8071e482"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/407ee19828a7d9700969ed9cc53be50d0f533619"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/b1c1101067d9536bcb0fe023b96ee2dde5535959"
}
],
"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.