CVE-2026-72195: fs/ntfs3: bound attr_off in UpdateResidentValue against data_off
In the Linux kernel, the following vulnerability has been resolved:
fs/ntfs3: bound attroff in UpdateResidentValue against dataoff
In doaction()'s UpdateResidentValue case (fslog.c:3307), lrh->attroff and lrh->redolen come from the on-disk LRH. When they satisfy aoff + dlen < attr->res.dataoff, the assignment
attr->res.datasize = cputole32(aoff + dlen - dataoff);
underflows to ~4 GiB (e.g. 0xFFFFFFF9 when aoff=0x10, dlen=1, dataoff=0x18). Subsequent code that reads attr->res.datasize to walk the resident attribute payload would then read up to 4 GiB past the 1024-byte MFT record allocation.
The existing mienumattr() defense in fs/ntfs3/record.c:287 catches the corrupted datasize 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 datasize without re-validating is not covered. Validate aoff against dataoff and asize at the source.
Reproduced under UML+KASAN on mainline 8d90b09e6741 via prwarn-only probe: with aoff=0x10 and dataoff=0x18, the post-assignment datasize is 0xfffffff9 (mount then fails at -22 from mienumattr).
[almaz.alexandrovich@paragon-software.com: clang-formatted the changes]
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Linux kernel (fs/ntfs3: UpdateResidentValue bounds fix)to a version that resolves this vulnerability.Patch 8d90b09e6741