Description
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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < ca235d11fc2fd8fce1dcd9d732dc780be0cde2deaffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < e0065e106f798ce6862251bc4fc030ac5cead940affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 0b08be5aca212a99f8ba786fee4922feac08002caffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < d8570211a2b1ec886a462daa0be4e9983ac768bbaffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 2025b2d1f9d5cad6ea6fe85654c6c41297c3130baffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < c4054ad2d8bff4e8e937cd4a1d1a04c1e8f77a2caffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 75a4d8cfe7784f909b3bd69325abac8e04ecb385affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 8e2f8020270af7777d49c2e7132260983e4fc566affected
Linux Linux
Default version status: affected
2.6.12affected0 to < 2.6.12unaffected5.10.253 to ≤ 5.10.*unaffected5.15.203 to ≤ 5.15.*unaffected6.1.167 to ≤ 6.1.*unaffected6.6.130 to ≤ 6.6.*unaffected6.12.78 to ≤ 6.12.*unaffected6.18.20 to ≤ 6.18.*unaffected6.19.10 to ≤ 6.19.*unaffected7.0 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/ca235d11fc2fd8fce1dcd9d732dc780be0cde2de ↗
- https://git.kernel.org/stable/c/e0065e106f798ce6862251bc4fc030ac5cead940 ↗
- https://git.kernel.org/stable/c/0b08be5aca212a99f8ba786fee4922feac08002c ↗
- https://git.kernel.org/stable/c/d8570211a2b1ec886a462daa0be4e9983ac768bb ↗
- https://git.kernel.org/stable/c/2025b2d1f9d5cad6ea6fe85654c6c41297c3130b ↗
- https://git.kernel.org/stable/c/c4054ad2d8bff4e8e937cd4a1d1a04c1e8f77a2c ↗
- https://git.kernel.org/stable/c/75a4d8cfe7784f909b3bd69325abac8e04ecb385 ↗
- https://git.kernel.org/stable/c/8e2f8020270af7777d49c2e7132260983e4fc566 ↗
- https://cert-portal.siemens.com/productcert/html/ssa-082556.html ↗
- https://cert-portal.siemens.com/productcert/html/ssa-019113.html ↗
- https://cert-portal.siemens.com/productcert/html/ssa-457936.html ↗