CVE-2026-89615

Summary

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

fs/ntfs3: bound page_lcns[] index by the log record

The copy_lcns loop and the redo shorten loop index page_lcns[] at j + i, where i runs up to the log record's lcns_follow. That count is checked only against the record's own length, not the target entry, so check_dp_table() (which validates the entry's lcns_follow) does not cover it: the copy_lcns entry may even be freshly allocated after that check, and find_dp() bounds j but not i. A crafted record thus overflows page_lcns[] of an otherwise valid entry.

Add dp_range_ok() and reject, before each loop, any record whose run does not fit the entry. These are the only two page_lcns[] accesses indexed by the record rather than the entry, so together with the entry validation every access is now bounded.

[almaz.alexandrovich@paragon-software.com: original patch contained changes to the problem already handled, applied partly]

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxb46acd6a6a627d876898e1c84d3f84902264b445 < f4c1bc6d7331f344ffcea93c2a37badcbe15baa6affected
LinuxLinuxb46acd6a6a627d876898e1c84d3f84902264b445 < 7ccb94901f38a062034b56b43c774050b113758faffected
LinuxLinuxb46acd6a6a627d876898e1c84d3f84902264b445 < 1135ebc225996b3ac1a295652b19a0a706737a6caffected
LinuxLinuxb46acd6a6a627d876898e1c84d3f84902264b445 < 6f7b9dbdc1b7520206abce0049bdd143eb536e75affected
LinuxLinux5.15affected
LinuxLinux0 < 5.15unaffected
LinuxLinux6.12.109 <= 6.12.*unaffected
LinuxLinux6.18.50 <= 6.18.*unaffected
LinuxLinux7.2.4 <= 7.2.*unaffected
LinuxLinux7.3-rc1 <= *unaffected

Weaknesses

References