fs/ntfs3: add depth limit to indx_find_buffer to prevent stack overflow
- 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.212, 6.1.178, 6.6.145, 6.12.97, 6.18.40, 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
- Exploitation: none
- Automatable: yes
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: fs/ntfs3: add depth limit to indx_find_buffer to prevent stack overflow indx_find_buffer() recursively descends the B+ tree index with no depth limit. A crafted NTFS image with circular index node references causes unbounded recursion, overflowing the kernel stack and panicking the system. This is reachable by mounting a malicious NTFS filesystem (e.g. from a USB drive via desktop automount) and deleting a file whose index entry triggers the rebalancing fallback path in indx_delete_entry(). Add a depth parameter and bail out with -EINVAL when it reaches the fnd->nodes array bound, matching the constraint already enforced by fnd_push() in indx_find(). The related function indx_find() was previously patched for a similar infinite-loop issue (commit 1732053c8a6b), but indx_find_buffer() was missed.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From 82cae269cfa953032fbb8980a7d554d60fb00b17 · fixed in 99031d4f63c785d2a985b6a4c64c4256f7117052; From 82cae269cfa953032fbb8980a7d554d60fb00b17 · fixed in 65357a81f64cb3fbe13b4b937586755e4b3a072f; From 82cae269cfa953032fbb8980a7d554d60fb00b17 · fixed in 96fb64f9da86fd2dbd78fbe9d9e41ae27e12ce34; From 82cae269cfa953032fbb8980a7d554d60fb00b17 · fixed in 78612f478f9fadcec4f9b3b089970da67ffb47e9; From 82cae269cfa953032fbb8980a7d554d60fb00b17 · fixed in 908c9243ba309997b73cbda3e4c563d0fb345ee9; From 82cae269cfa953032fbb8980a7d554d60fb00b17 · fixed in fdf50c788e0991e42a187ff75479a0df7fb752f1; From 82cae269cfa953032fbb8980a7d554d60fb00b17 · fixed in 1ebd684b8f627f75bc3e03f8b2ad8400fd1f02cd
- 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
- stable/c/99031d4f63c785d2a985b6a4c64c4256f7117052
- stable/c/65357a81f64cb3fbe13b4b937586755e4b3a072f
- stable/c/96fb64f9da86fd2dbd78fbe9d9e41ae27e12ce34
- stable/c/78612f478f9fadcec4f9b3b089970da67ffb47e9
- stable/c/908c9243ba309997b73cbda3e4c563d0fb345ee9
- stable/c/fdf50c788e0991e42a187ff75479a0df7fb752f1
- stable/c/1ebd684b8f627f75bc3e03f8b2ad8400fd1f02cd