mcu-tools mcuboot bis 2.4.x Boot Record boot_record.c boot_save_boot_status Information Disclosure
| CVSS Meta Temp Score | Aktueller Exploitpreis (≈) | CTI Interest Score |
|---|---|---|
| 2.3 | $0-$5k | 0.00+ |
Zusammenfassung
In mcu-tools mcuboot bis 2.4.x wurde eine problematische Schwachstelle gefunden. Hierbei betrifft es die Funktion boot_save_boot_status der Datei boot/bootutil/src/boot_record.c der Komponente Boot Record. Durch Manipulation mit unbekannten Daten kann eine Information Disclosure-Schwachstelle ausgenutzt werden.
Eine eindeutige Identifikation der Schwachstelle wird mit CVE-2026-16662 vorgenommen. Der Angriff muss lokal angegangen werden. Es gibt keinen verfügbaren Exploit.
Die Aktualisierung der betroffenen Komponente wird empfohlen.
Details
Es wurde eine problematische Schwachstelle in mcu-tools mcuboot bis 2.4.x gefunden. Dabei betrifft es die Funktion boot_save_boot_status der Datei boot/bootutil/src/boot_record.c der Komponente Boot Record. Durch die Manipulation mit einer unbekannten Eingabe kann eine Information Disclosure-Schwachstelle ausgenutzt werden. Im Rahmen von CWE wurde eine Klassifizierung als CWE-908 vorgenommen. Dies hat Einfluss auf die Vertraulichkeit. Die Zusammenfassung von CVE lautet:
boot_save_boot_status() in boot/bootutil/src/boot_record.c reads the image's EXPECTED_HASH_TLV into a stack buffer image_hash[IMAGE_HASH_SIZE] that is never zero-initialised. The TLV handler validates only the upper bound (len > sizeof(image_hash)) and then reads exactly len bytes, so a TLV shorter than IMAGE_HASH_SIZE leaves the tail of image_hash holding stale stack content. The subsequent copy into the boot record, memcpy(buf + offset, image_hash, sizeof(image_hash)), uses the fixed buffer size rather than len, so up to IMAGE_HASH_SIZE - 1 bytes of uninitialised bootloader stack are written into the measured-boot record.
The defect is reachable only under MCUBOOT_MEASURED_BOOT, and only when the image reaching boot_save_boot_status() was not hash-validated on that boot. bootutil_img_validate() rejects a hash TLV whose length is not exactly sizeof(hash) (boot/bootutil/src/image_validate.c:345), and primary-slot validation is on by default (Zephyr's CONFIG_BOOT_VALIDATE_SLOT0 defaults to y), so in a default build the malformed image never reaches this code. The direct-XIP and RAM-load strategies in boot/bootutil/src/loader.c validate the selected slot unconditionally and are not affected. The short TLV survives only where the integrator has turned primary-slot validation off: the swap and overwrite loader built without MCUBOOT_VALIDATE_PRIMARY_SLOT, which checks only the image magic before calling boot_add_shared_data(), and the Zephyr single-slot loader (boot/zephyr/single_loader.c) built without it, including the MCUBOOT_VALIDATE_PRIMARY_SLOT_ONCE variant, which skips validation once the trailer records an earlier successful one. It is also reachable through a time-of-check/time-of-use change to tamperable external flash between validation and the boot-record read. Placing the crafted image requires physical or flash-write access to the device; in a single-slot build with serial recovery enabled, the serial-recovery upload writes the primary slot directly and can place it as well.
In these configurations the boot record's measurement is already not trustworthy: with validation off, the hash copied into the record is the image's own unverified EXPECTED_HASH_TLV, which the attacker chooses. The defect therefore does not weaken attestation integrity any further. What it adds is a path for bootloader memory to leave the device: up to 63 bytes (IMAGE_HASH_SIZE - 1) of uninitialised bootloader stack are embedded in the measurement field that a downstream attestation service sends to a remote verifier. In the configurations analysed the residue is bootloader internal state (TLV offsets and lengths, flash addresses, loop state), not key material, but what occupies that stack region depends on configuration and on which code ran before boot_save_boot_status(). It is reported as a low-severity, defense-in-depth disclosure with no integrity or availability impact.
This is distinct from the already-fixed record_len integer underflow in the same routine (GHSA-8hrv-4cp5-4rg3). The fix rejects any EXPECTED_HASH_TLV whose length is not exactly IMAGE_HASH_SIZE.Bereitgestellt wird das Advisory unter github.com. Die Identifikation der Schwachstelle wird seit dem 22.07.2026 mit CVE-2026-16662 vorgenommen. Sie ist leicht auszunutzen. Der Angriff muss lokal erfolgen. Um eine Ausnutzung durchzusetzen, muss eine erweiterte Authentisierung umgesetzt werden. Es sind zwar technische Details, jedoch kein verfügbarer Exploit zur Schwachstelle bekannt.
Ein Aktualisieren auf die Version 2.5.0 vermag dieses Problem zu lösen. Die Schwachstelle lässt sich auch durch das Einspielen des Patches 5098d8eef1139abd3d821d8138a6321d656dcd3e lösen. Als bestmögliche Massnahme wird das Upgrade auf eine neue Version empfohlen.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.
Produkt
Hersteller
Name
Version
Webseite
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔒VulDB Zuverlässigkeit: 🔍
CVSSv3
VulDB Meta Base Score: 2.3VulDB Meta Temp Score: 2.3
VulDB Base Score: 2.3
VulDB Temp Score: 2.2
VulDB Vector: 🔒
VulDB Zuverlässigkeit: 🔍
CNA Base Score: 2.4
CNA Vector (zephyr): 🔒
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vektor | Komplexität | Authentisierung | Vertraulichkeit | Integrität | Verfügbarkeit |
|---|---|---|---|---|---|
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Zuverlässigkeit: 🔍
Exploiting
Klasse: Information DisclosureCWE: CWE-908
CAPEC: 🔒
ATT&CK: 🔒
Physisch: Ja
Lokal: Ja
Remote: Nein
Verfügbarkeit: 🔒
Status: Nicht definiert
Preisentwicklung: 🔍
Aktuelle Preisschätzung: 🔒
| 0-Day | freischalten | freischalten | freischalten | freischalten |
|---|---|---|---|---|
| Heute | freischalten | freischalten | freischalten | freischalten |
Threat Intelligence
Interesse: 🔍Aktive Akteure: 🔍
Aktive APT Gruppen: 🔍
Gegenmassnahmen
Empfehlung: UpgradeStatus: 🔍
0-Day Time: 🔒
Upgrade: mcuboot 2.5.0
Patch: 5098d8eef1139abd3d821d8138a6321d656dcd3e
Timeline
22.07.2026 CVE zugewiesen13.11.2026 Advisory veröffentlicht
13.11.2026 VulDB Eintrag erstellt
13.11.2026 VulDB Eintrag letzte Aktualisierung
Quellen
Produkt: github.comAdvisory: github.com
Status: Bestätigt
CNA: zephyr
CVE: CVE-2026-16662 (🔒)
GCVE (CVE): GCVE-0-2026-16662
GCVE (VulDB): GCVE-100-436593
Eintrag
Erstellt: 13.11.2026 01:54Anpassungen: 13.11.2026 01:54 (67)
Komplett: 🔍
Cache ID: 216::103
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.
Bisher keine Kommentare. Sprachen: de + en.
Bitte loggen Sie sich ein, um kommentieren zu können.