CVE-2026-127915Low· 2.0▾ SunlitThe MCUboot TLV iterator bootutil_tlv_iter_next() in boot/bootutil/src/tlv.c walks image trailer TLVs with a single loop guard (it->tlv_off < it->tlv_end) and advances by sizeof(struct image_tlv) + tlv.it_len using the attacker-controlle…
▾ Sunlit zone — Low / medium · no exploitation signal
impact 11 · likelihood 0 · exploitation 0
Need a working PoC? Pro members can cast a request and our team develops one — it lands right here.
The MCUboot TLV iterator bootutil_tlv_iter_next() in boot/bootutil/src/tlv.c walks image trailer TLVs with a single loop guard (it->tlv_off < it->tlv_end) and advances by sizeof(struct image_tlv) + tlv.it_len using the attacker-controlled it_len field, without validating that the entry's header or payload stays within it->tlv_end. As a result the 4-byte header read can extend up to 3 bytes past the declared TLV area, and the returned (off, len) can describe a payload that runs past it.
The path is pre-authentication: TLVs are parsed during bootutil_img_validate() before the signature is verified, and a crafted image can be presented through DFU / serial-recovery / OTA. However the impact is contained by surrounding guards: bootutil_img_validate() first rejects a TLV area larger than bootutil_max_image_size(), the default LOAD_IMAGE_DATA sink is flash_area_read() which bounds-checks against the flash partition and fails an out-of-partition read, and every payload consumer (EXPECTED_HASH_TLV, EXPECTED_KEY_TLV, EXPECTED_SIG_TLV, IMAGE_TLV_SEC_CNT) clamps len against a fixed buffer before copying.
The residual effect in a default flash build is therefore an out-of-region read confined to the attacker's own slot partition whose result is never observable, yielding at worst a clean validation failure rather than memory corruption or information disclosure. A genuine (though still bounded) out-of-bounds read remains under the non-default MCUBOOT_RAM_LOAD configuration, where LOAD_IMAGE_DATA is an unchecked memcpy. The fix is to validate each entry's header and payload against it->tlv_end inside the iterator.
mcuboot >= 0.9.0 < 2.5.0Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
Connected by shared product, vendor, weakness, or advisory.
CVE-2026-127916Low· 2.9MCUboot image hash span is not bounded against the slot, allowing a read past the flash area during image validation
CVE-2026-127928Low· 2.0AES image key left on the stack after serial-recovery encrypted-image handling in MCUboot
CVE-2026-16659Medium· 4.0Pre-authentication NULL pointer dereference in MCUboot serial-recovery image upload (encrypted-image builds)
CVE-2026-128091Low· 2.0AES key schedule not cleared by the TinyCrypt AES-CTR backend in MCUboot bootutil
CVE-2026-16671Low· 2.9Out-of-bounds stack write in MCUboot split-image validation with SHA-384/SHA-512 builds
CVE-2026-16664Medium· 5.1Unchecked serial-recovery image index causes out-of-bounds slot-table read in MCUboot Zephyr port