CVE-2026-72197

fs/ntfs3: bound DeleteIndexEntryAllocation memmove length

State
Published
Severity
8.4 High
Published
Aug 15, 2026
Updated
Oct 16, 2026
Reserved
Aug 9, 2026

Read the record on cve.org

Description

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

fs/ntfs3: bound DeleteIndexEntryAllocation memmove length

In do_action()'s DeleteIndexEntryAllocation case, e->size comes from an on-disk INDEX_BUFFER entry. When e->size makes e + e->size point past hdr + hdr->used, PtrOffset(e1, Add2Ptr(hdr, used)) returns a negative ptrdiff_t that is silently cast to a quasi-infinite size_t when passed to memmove(). The memmove then walks past the destination buffer.

The sibling DeleteIndexEntryRoot case at fslog.c:3540-3543 already carries the corresponding guard:

if (PtrOffset(e1, Add2Ptr(hdr, used)) < esize || Add2Ptr(e, esize) > Add2Ptr(lrh, rec_len) || used + esize > le32_to_cpu(hdr->total)) { goto dirty_vol; }

Apply the same shape to the allocation-path case. Also reject esize == 0: memmove(e, e, ...) is a no-op and leaves hdr->used unchanged, hiding a malformed entry from the existing check_index_header() walk.

Reproduced under UML+KASAN on mainline 8d90b09e6741 by mounting a crafted NTFS image: the unguarded memmove takes a length of 0xffffffffffffff00 and the kernel oopses in memmove+0x81/0x1a0 on the do_action+0x36a2 frame.

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

Scores

CVSSScoreVectorSource
3.18.4 HighCVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • b46acd6a6a627d876898e1c84d3f84902264b445 to before c38ed2ab62fab75fd6d0fdc2bee540fbebc7b959Affected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to before b509b9613f20dc5b653d54bf78fab00d79cc43c8Affected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to before 4c8aac931c1cd70347961ba5157aa916448c6a25Affected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to before f383aae59ec3994c14804f4191c59038b206be81Affected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to before 09fddd52c1b0cef2c086d61be8f3d5dc92e36565Affected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to before 554700c65d398276cb00a8ef95f1d5e00b9eff93Affected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to before fc4626bb3656362de8b0ecd56605d47a19ec3518Affected
LinuxLinux
  • 5.15Affected
  • before 5.15Not affected
  • 5.15.212 through 5.15.*Not affected
  • 6.1.178 through 6.1.*Not affected
  • 6.6.145 through 6.6.*Not affected
  • 6.12.97 through 6.12.*Not affected
  • 6.18.40 through 6.18.*Not affected
  • 7.1.5 through 7.1.*Not affected
  • 7.2 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.