mtd: Avoid boot crash in RedBoot partition table parser
- 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.10.253, 5.15.203, 6.1.167, 6.6.130, 6.12.78, and 2 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: mtd: Avoid boot crash in RedBoot partition table parser Given CONFIG_FORTIFY_SOURCE=y and a recent compiler, commit 439a1bcac648 ("fortify: Use __builtin_dynamic_object_size() when available") produces the warning below and an oops. Searching for RedBoot partition table in 50000000.flash at offset 0x7e0000 ------------[ cut here ]------------ WARNING: lib/string_helpers.c:1035 at 0xc029e04c, CPU#0: swapper/0/1 memcmp: detected buffer overflow: 15 byte read of buffer size 14 Modules linked in: CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.19.0 #1 NONE As Kees said, "'names' is pointing to the final 'namelen' many bytes of the allocation ... 'namelen' could be basically any length at all. This fortify warning looks legit to me -- this code used to be reading beyond the end of the allocation." Since the size of the dynamic allocation is calculated with strlen() we can use strcmp() instead of memcmp() and remain within bounds.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in ca235d11fc2fd8fce1dcd9d732dc780be0cde2de; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in e0065e106f798ce6862251bc4fc030ac5cead940; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 0b08be5aca212a99f8ba786fee4922feac08002c; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in d8570211a2b1ec886a462daa0be4e9983ac768bb; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 2025b2d1f9d5cad6ea6fe85654c6c41297c3130b; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in c4054ad2d8bff4e8e937cd4a1d1a04c1e8f77a2c; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 75a4d8cfe7784f909b3bd69325abac8e04ecb385; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 8e2f8020270af7777d49c2e7132260983e4fc566
- Linux Linux
2.6.12
- KernelLinux
From 2.6.12 · fixed in 5.10.253; From 5.11.0 · fixed in 5.15.203; From 5.16.0 · fixed in 6.1.167; From 6.2.0 · fixed in 6.6.130; From 6.7.0 · fixed in 6.12.78; From 6.13.0 · fixed in 6.18.20; From 6.19.0 · fixed in 6.19.10
References 8
git.kernel.org
- stable/c/ca235d11fc2fd8fce1dcd9d732dc780be0cde2de
- stable/c/e0065e106f798ce6862251bc4fc030ac5cead940
- stable/c/0b08be5aca212a99f8ba786fee4922feac08002c
- stable/c/d8570211a2b1ec886a462daa0be4e9983ac768bb
- stable/c/2025b2d1f9d5cad6ea6fe85654c6c41297c3130b
- stable/c/c4054ad2d8bff4e8e937cd4a1d1a04c1e8f77a2c
- stable/c/75a4d8cfe7784f909b3bd69325abac8e04ecb385
- stable/c/8e2f8020270af7777d49c2e7132260983e4fc566