Skip to main content
← All vulnerabilities
CVE-2026-72195

fs/ntfs3: bound attr_off in UpdateResidentValue against data_off

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.15.212, 6.1.178, 6.6.145, 6.12.97, 6.18.40, and 1 more
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: total

Summary

In 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]

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: total

  3. Record last updated

Affected versions

  • Linux Linux

    From b46acd6a6a627d876898e1c84d3f84902264b445 · fixed in ab8761676d638c5be170aaf91b7ffdd451236616; From b46acd6a6a627d876898e1c84d3f84902264b445 · fixed in 53c12f178f584dc5f836ffe2782138a6e9348ed9; From b46acd6a6a627d876898e1c84d3f84902264b445 · fixed in 546518468e6c9ea469669eef78f8cc380ad6e2ca; From b46acd6a6a627d876898e1c84d3f84902264b445 · fixed in 97758fd9756b5f09e9ddc6a5f6a569041acc8421; From b46acd6a6a627d876898e1c84d3f84902264b445 · fixed in 50b5e83384e7fed3d11d18b79ff350e9d6d89861; From b46acd6a6a627d876898e1c84d3f84902264b445 · fixed in a89c66674283a0293c0f266dc57087a6114371a3; From b46acd6a6a627d876898e1c84d3f84902264b445 · fixed in d1570c48f49a693974d000251030370ee2e83539

  • Linux Linux

    5.15

  • KernelLinux

    From 5.15.0 · fixed in 5.15.212; From 5.16.0 · fixed in 6.1.178; From 6.2.0 · fixed in 6.6.145; From 6.7.0 · fixed in 6.12.97; From 6.13.0 · fixed in 6.18.40; From 6.19.0 · fixed in 7.1.5

References 7

git.kernel.org