fs/ntfs3: bound page_lcns[] index by the log record
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.15.221, 6.1.188, 6.6.157, 6.12.109, 6.18.50, and 1 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
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]
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From b46acd6a6a627d876898e1c84d3f84902264b445 · fixed in 31fdd11f75da9823500168cecb07aa45130915a3; From b46acd6a6a627d876898e1c84d3f84902264b445 · fixed in bb742d1030864c0fe140666f639428ba4e90b2ca; From b46acd6a6a627d876898e1c84d3f84902264b445 · fixed in 61ca8cbbf68f77f25b699ed4358bd232f94ed43b; From b46acd6a6a627d876898e1c84d3f84902264b445 · fixed in f4c1bc6d7331f344ffcea93c2a37badcbe15baa6; From b46acd6a6a627d876898e1c84d3f84902264b445 · fixed in 7ccb94901f38a062034b56b43c774050b113758f; From b46acd6a6a627d876898e1c84d3f84902264b445 · fixed in 1135ebc225996b3ac1a295652b19a0a706737a6c; From b46acd6a6a627d876898e1c84d3f84902264b445 · fixed in 6f7b9dbdc1b7520206abce0049bdd143eb536e75
- Linux Linux
5.15
- KernelLinux
From 5.15.0 · fixed in 5.15.221; From 5.16.0 · fixed in 6.1.188; From 6.2.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.109; From 6.13.0 · fixed in 6.18.50; From 6.19.0 · fixed in 7.2.4
References 7
git.kernel.org
- stable/c/31fdd11f75da9823500168cecb07aa45130915a3
- stable/c/bb742d1030864c0fe140666f639428ba4e90b2ca
- stable/c/61ca8cbbf68f77f25b699ed4358bd232f94ed43b
- stable/c/f4c1bc6d7331f344ffcea93c2a37badcbe15baa6
- stable/c/7ccb94901f38a062034b56b43c774050b113758f
- stable/c/1135ebc225996b3ac1a295652b19a0a706737a6c
- stable/c/6f7b9dbdc1b7520206abce0049bdd143eb536e75