CVE-2026-16671
Received Received - Intake

Buffer Overflow in MCUboot Bootloader

Vulnerability report for CVE-2026-16671, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-11-13

Last updated on: 2026-11-13

Assigner: Zephyr Project

Description

split_image_check() in boot/bootutil/src/loader.c declares a fixed uint8_t loader_hash[32] buffer and passes it as the out_hash out-parameter to bootutil_img_validate(). That routine copies IMAGE_HASH_SIZE bytes into out_hash (memcpy(out_hash, hash, IMAGE_HASH_SIZE) in boot/bootutil/src/image_validate.c), where IMAGE_HASH_SIZE is a compile-time constant of 64 for MCUBOOT_SHA512 or 48 for MCUBOOT_SIGN_EC384/SHA-384 (boot/bootutil/include/bootutil/crypto/sha.h). The buffer tracks SHA-256 (32 bytes) while the copy length tracks the configured algorithm, so the write overruns the buffer by 16 or 32 bytes. The overflow is only present in a non-default configuration: the legacy Mynewt split-image feature must be compiled (split_go()/split_image_check(), i.e. neither MCUBOOT_DIRECT_XIP nor MCUBOOT_RAM_LOAD), the digest must be larger than 32 bytes (MCUBOOT_SHA512 or MCUBOOT_SIGN_EC384), and MCUBOOT_SIGN_PURE must be off. split_go() is a public API with no caller inside MCUboot; it is invoked from a Mynewt application. In the default SHA-256 build there is no overflow. The over-written bytes are the one-way digest of the loader image and the overflow length is fixed at build time, so the contents are not meaningfully attacker-controlled and the size is not attacker-chosen. The realistic impact is bounded, uncontrolled corruption of the bootloader's stack on the split-boot path, manifesting as instability or failed boot in the affected configuration rather than reliable code execution. The fix is to size loader_hash to IMAGE_HASH_SIZE and pass IMAGE_HASH_SIZE as the matching seed length.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-11-13
Last Modified
2026-11-13
Generated
2026-11-13
AI Q&A
2026-11-13
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
mcu-tools mcuboot From 2.0.0 (inc) to 2.5.0 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-787 The product writes data past the end, or before the beginning, of the intended buffer.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

CVE-2026-16671 is a buffer overflow vulnerability in MCUboot's split-image validation. The issue occurs in the split_image_check() function which declares a fixed 32-byte buffer but passes it to a validation routine that writes up to 64 bytes for SHA-512 or 48 bytes for SHA-384 configurations. This causes a 16 or 32-byte buffer overflow. The vulnerability only affects non-default configurations with legacy Mynewt split-image enabled and larger digest algorithms.

Detection Guidance

Check if your MCUboot build uses SHA-384 or SHA-512 with legacy Mynewt split-image enabled. Inspect the bootloader binary for the split_image_check() function and verify buffer sizes. No direct network detection commands are provided.

Impact Analysis

The vulnerability can cause instability or failed boot on systems using the affected MCUboot configurations. It corrupts the bootloader's stack during split-boot operations but does not allow reliable code execution. The impact is limited to non-default setups with SHA-384/SHA-512 and legacy split-image features enabled.

Compliance Impact

This vulnerability does not directly impact compliance with GDPR or HIPAA as it does not involve unauthorized data access, disclosure, or processing of personal or health information. The issue is limited to a stack corruption in the bootloader during a non-default configuration, causing instability or failed boot rather than data breaches or compliance violations.

Mitigation Strategies

Upgrade MCUboot to version 2.5.0 or later. Ensure the loader_hash buffer size matches IMAGE_HASH_SIZE in split_image_check(). Disable legacy Mynewt split-image if not required.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-16671. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart

Security Radar

News mentioning this vulnerability
Loading related security news...