CVE-2026-64532: fs/ntfs3: bound NTFS_DE view.data_off in UpdateRecordData{Root,Allocation}
Greg Kroah-Hartman <[email protected]> Mon, 27 Jul 2026 08:32:31 +0200
| Newsgroups | org.kernel.vger.linux-cve-announce |
|---|---|
| Message-ID | <2026072734-CVE-2026-64532-3529@gregkh> |
From: Greg Kroah-Hartman <[email protected]> Description =========== In the Linux kernel, the following vulnerability has been resolved: fs/ntfs3: bound NTFS_DE view.data_off in UpdateRecordData{Root,Allocation} In do_action()'s UpdateRecordDataRoot (fslog.c:3489) and UpdateRecordDataAllocation (fslog.c:3697) cases, the memmove destination is `Add2Ptr(e, le16_to_cpu(e->view.data_off))`, where e->view.data_off comes from an on-disk NTFS_DE inside an INDEX_ROOT or INDEX_BUFFER. Neither case validates view.data_off + dlen against e->size; the existing check_if_index_root / check_if_alloc_index helpers walk the entry chain and validate the entry's offset, but not its internal view fields. The neighbouring read sites (e.g., fs/ntfs3/index.c when iterating view entries) check view.data_off + view.data_size <= e->size. Apply the same bound at the two memmove sites. Reproduced under UML+KASAN on mainline 8d90b09e6741 via pr_warn-only probe instrumentation: with view.data_off forced to 0xFFFC, the memmove writes 32 bytes past the end of the NTFS_DE. This is similar in shape to Pavitra Jha's 2026-05-02 patch "fs/ntfs3: prevent oob in case UpdateRecordDataRoot" (<[email protected]>) which proposes calling ntfs3_bad_de_range(); that helper does not exist in mainline. This patch uses inline checks. The Linux kernel CVE team has assigned CVE-2026-64532 to this issue. Affected and fixed versions =========================== Issue introduced in 5.15 with commit b46acd6a6a627d876898e1c84d3f84902264b445 and fixed in 5.15.212 with commit b20e5a709d8bd190d6e4645606763c7423e694c1 Issue introduced in 5.15 with commit b46acd6a6a627d876898e1c84d3f84902264b445 and fixed in 6.1.178 with commit d41b382068ca4e64e421f736cdd700095464b6ac Issue introduced in 5.15 with commit b46acd6a6a627d876898e1c84d3f84902264b445 and fixed in 6.6.145 with commit 429d653ca641d38a78609b8f62e81a0a5c780a2d Issue introduced in 5.15 with commit b46acd6a6a627d876898e1c84d3f84902264b445 and fixed in 6.12.97 with commit 315d3a9a48b49f889da3d858a9307e677cb9e1bd Issue introduced in 5.15 with commit b46acd6a6a627d876898e1c84d3f84902264b445 and fixed in 6.18.40 with commit be306b8d9143a9c076c804a7ca025d69caf9c448 Issue introduced in 5.15 with commit b46acd6a6a627d876898e1c84d3f84902264b445 and fixed in 7.1.5 with commit 36feda687afebae24c472202694448738809c411 Issue introduced in 5.15 with commit b46acd6a6a627d876898e1c84d3f84902264b445 and fixed in 7.2-rc1 with commit 3e127829e57f5190f612412ece4541cb96d5ec7a Please see https://www.kernel.org for a full list of currently supported kernel versions by the kernel community. Unaffected versions might change over time as fixes are backported to older supported kernel versions. The official CVE entry at https://cve.org/CVERecord/?id=CVE-2026-64532 will be updated if fixes are backported, please check that for the most up to date information about this issue. Affected files ============== The file(s) affected by this issue are: fs/ntfs3/fslog.c Mitigation ========== The Linux kernel CVE team recommends that you update to the latest stable kernel version for this, and many other bugfixes. Individual changes are never tested alone, but rather are part of a larger kernel release. Cherry-picking individual commits is not recommended or supported by the Linux kernel community at all. If however, updating to the latest release is impossible, the individual changes to resolve this issue can be found at these commits: https://git.kernel.org/stable/c/b20e5a709d8bd190d6e4645606763c7423e694c1 https://git.kernel.org/stable/c/d41b382068ca4e64e421f736cdd700095464b6ac https://git.kernel.org/stable/c/429d653ca641d38a78609b8f62e81a0a5c780a2d https://git.kernel.org/stable/c/315d3a9a48b49f889da3d858a9307e677cb9e1bd https://git.kernel.org/stable/c/be306b8d9143a9c076c804a7ca025d69caf9c448 https://git.kernel.org/stable/c/36feda687afebae24c472202694448738809c411 https://git.kernel.org/stable/c/3e127829e57f5190f612412ece4541cb96d5ec7a