Wissen · Bare-Metal

mbedTLS-Schwachstellen nach Version: die CVE-Liste je Release-Linie

mbedTLS 2.16.2 aus STM32Cube: 39 CVEs laut NVD. Gepflegt werden die LTS-Linien 3.6 und 4.1.

Die kleine Zahl für 3.6.6 täuscht: 3.6.7 behebt Lücken aus 19 Sicherheitshinweisen, deren CVEs in der NVD noch fehlen. Die Version steht im Quellcode im Makro MBEDTLS_VERSION_STRING.

Stand 23. Oktober 2026 · 9 Min. LesezeitDie Konformitätsaussage treffen Sie. Diese Seite und unsere Berichte liefern technische Feststellungen als Grundlage dafür.

Auf einen Blick
In STM32CubeF4, F7, H7
2.16.2
NVD-CVEs für 3.6.5
11, davon 4 ab 9,0
Neueste Version
4.2.0 vom 07.07.2026
3.6 LTS gepflegt bis
März 2027
4.1 LTS gepflegt bis
März 2029

NVD, abgefragt 23.10.2026

Wie viele CVEs führt die NVD für meine mbedTLS-Version?

Gezählt sind CVEs, deren NVD-Konfiguration die Version als verwundbar führt. Abgefragt am 23.10.2026 über die NVD-API, mit allen CPE-Namen, unter denen NVD mbedTLS führt, ohne zurückgezogene Einträge. Die CVSS-Wertung ist die der NVD, sonst die Zweitwertung im NVD-Eintrag, bei den meisten neueren mbedTLS-CVEs die von CISA-ADP. In Klammern steht, welches Paket diese Version mitliefert.

Die Zahl ist ein Versionsbereich. Ob eine Lücke im Gerät ausnutzbar ist, hängt davon ab, ob die betroffene Funktion gebaut und erreichbar ist.

Version, ErscheinungsdatumCVEs laut NVD, davon CVSS ab 9,0
2.16.2, 19.06.2019 (STM32CubeF4 v1.28.3, F7 v1.17.4, H7 v1.13.0)39 CVEs, davon 5 ab 9,0
2.16.12, 17.12.2021 (letzte 2.16)23 CVEs, davon 4 ab 9,0
2.28.0, 17.12.202125 CVEs, davon 5 ab 9,0
2.28.8 (NXP MCUXpresso SDK 2.16)18 CVEs, davon 3 ab 9,0
2.28.10, 24.03.2025 (letzte 2.28; NXP MCUXpresso SDK 25.12.00)15 CVEs, davon 3 ab 9,0
3.0.0, 07.07.202125 CVEs, davon 6 ab 9,0
3.5.2, 26.01.2024 (letzte 3.5)28 CVEs, davon 8 ab 9,0
3.6.0, 28.03.202426 CVEs, davon 8 ab 9,0
3.6.3, 24.03.2025 (NXP SDK 25.12.00, zweite Kopie)20 CVEs, davon 5 ab 9,0
3.6.4, 30.06.2025 (Zephyr v4.2.2)13 CVEs, davon 4 ab 9,0
3.6.5, 15.10.2025 (ESP-IDF v5.4.4, Zephyr v3.7.2)11 CVEs, davon 4 ab 9,0
3.6.6, 31.03.2026 (STM32CubeU5 v1.9.0, H5 v1.7.0, Zephyr v4.3.1)1 CVE in der NVD. 3.6.7 behebt Lücken aus 19 weiteren Sicherheitshinweisen.
3.6.7, 07.07.2026 (ESP-IDF v5.2.8, v5.3.6, v5.5.6; NXP SDK 26.09.00)1 CVE (CVE-2025-66442, CVSS 5,1, nur mit der LLVM-Optimierung select-optimize)
4.0.0, 15.10.20257 CVEs, davon 2 ab 9,0
4.1.0, 31.03.2026 (ESP-IDF v6.1, Zephyr v4.4.2, NXP SDK 26.06.00-LTS)Keine in der NVD. Laut Sicherheitshinweisen betroffen etwa von CVE-2026-49300 und CVE-2026-50580, behoben in 4.1.1.
4.1.1 und 4.2.0, 07.07.2026 (ESP-IDF v6.0.3; NXP SDK 26.09.00)Keine in der NVD. Laut Advisory des Projekts betrifft CVE-2025-66442 (nur mit select-optimize) alle Versionen. Für CVE-2026-25832 nennt CVE.org 4.0.0 bis vor 4.1.2, die Release Notes zu 4.1.1 führen die Korrektur; eine Version 4.1.2 gibt es am 23.10.2026 nicht.

Welche mbedTLS-Version liefern STM32Cube, NXP-SDK, ESP-IDF und Zephyr mit?

Gelesen aus version.h oder build_info.h an den veröffentlichten Tags, Stand 23.10.2026. Espressif, Zephyr und NXP führen eigene Forks. Der Header nennt die Version, auf der die Kopie beruht.

Die STM32-Pakete für F4, F7 und H7 liefern 2.16.2 aus dem Jahr 2019. Die Linie bekommt seit 2.16.12 keine Korrekturen mehr. Zwei Lücken vom Juli 2026 betreffen laut Projekt alle Versionen bis 3.6.6, also auch 2.16 und 2.28: CVE-2026-49300 und CVE-2026-50580. Für diese Linien gibt es keine Korrektur.

Paket, StandmbedTLS-Version laut Header
STM32CubeF4 v1.28.3, F7 v1.17.4, H7 v1.13.02.16.2
STM32CubeU5 v1.9.0, H5 v1.7.03.6.6 (Ordner Middlewares/Third_Party/mbed-crypto)
NXP MCUXpresso SDK 26.09.004.2.0 mit TF-PSA-Crypto 1.2.0, dazu 3.6.7 als zweite Kopie
NXP MCUXpresso SDK 26.06.00-LTS4.1.0, dazu 3.6.6
NXP MCUXpresso SDK 25.12.002.28.10, dazu 3.6.3
ESP-IDF v6.14.1.0
ESP-IDF v6.0.34.1.1
ESP-IDF v5.5.6, v5.3.6, v5.2.83.6.7
ESP-IDF v5.4.43.6.5
Zephyr v4.4.24.1.0
Zephyr v4.3.13.6.6
Zephyr v3.7.2 (LTS)3.6.5

Welche mbedTLS-Lücken zählen zuerst?

Eine Auswahl nach CVSS und Reichweite. Die Wertung ist die der NVD, sonst die von CISA-ADP. CVE-2026-49300 und CVE-2026-50580 sind bei CVE.org nur reserviert und fehlen in der NVD; das Projekt stuft beide als HIGH ein. Bei CVE-2026-34877 weichen die Wertungen auseinander: das Projekt sagt LOW, CISA-ADP 9,8.

CVEWas, betroffen, Fix
CVE-2022-46393Heap-Überlauf in DTLS mit Connection ID (MBEDTLS_SSL_DTLS_CONNECTION_ID), 9,8. Vor 2.28.2 und 3.x vor 3.3.0.
CVE-2022-35409Ungültiges ClientHello an einen DTLS-Server liest bis zu 255 Byte über den Heap hinaus, 9,1. Vor 2.28.1 und 3.x vor 3.2.0.
CVE-2025-47917Use-after-free in mbedtls_x509_string_to_names(), 9,8. Vor 3.6.4. 2.28.10 ist laut NVD betroffen und bekommt keine Korrektur.
CVE-2026-34875Pufferüberlauf beim Export öffentlicher FFDH-Schlüssel mit psa_export_public_key(), 9,8. 3.5.0 bis 3.6.5 und TF-PSA-Crypto 1.0.0. Fix 3.6.6, TF-PSA-Crypto 1.1.0.
CVE-2026-34873Ein Angreifer in der Mitte kann sich beim Wiederaufnehmen einer TLS-1.3-Sitzung als Client ausgeben, 9,1. Server mit TLS 1.2 und 1.3. 3.5.0 bis 3.6.5 und 4.0.0. Fix 3.6.6 und 4.1.0.
CVE-2026-34877Gespeicherte TLS-Sitzungen oder Kontexte, die ein Angreifer ändern kann, führen beim Laden zu Speicherfehlern, 9,8. 2.19.0 bis 3.6.5 und 4.0.0. Fix 3.6.6 und 4.1.0, für 2.28 keiner.
CVE-2026-49300X.509-Parser liest manche ungültigen Zertifikate als CA-Zertifikat (basicConstraints). Alle Versionen bis 3.6.6 und 4.0.0 bis 4.1.0. Fix 3.6.7, 4.1.1, 4.2.0.
CVE-2026-50580Pufferüberlauf im TLS-1.2-Client mit ECDHE-PSK und sehr langer PSK-Identität, ein bösartiger Server löst ihn aus. 1.3.10 bis 3.6.6 und 4.0.0 bis 4.1.0. Fix 3.6.7, 4.1.1, 4.2.0.

Warum fehlen neue mbedTLS-CVEs in der NVD?

Die Release Notes zu 3.6.7 verweisen auf 19 Sicherheitshinweise. Sie nennen 15 CVE-Nummern und eine sechzehnte mit Tippfehler („CVE-ID-50580“, bei CVE.org als CVE-2026-50580 reserviert). Am 23.10.2026 sind 14 der 15 bei CVE.org nur reserviert und fehlen in der NVD. Die fünfzehnte, CVE-2026-25832, steht in der NVD ohne CPE-Konfiguration, Status „Awaiting Analysis“. Keine der 15 zählt deshalb bei einer Version mit.

Wer 3.6.6, 4.1.0 oder älter einsetzt, liest deshalb zusätzlich die Security Advisories des Projekts. Sie nennen je Lücke die betroffenen Versionen.

Die 15 Nummern aus den Release Notes 3.6.7 bei CVE.org
for id in CVE-2026-25832 CVE-2026-35336 CVE-2026-49300 CVE-2026-50579 CVE-2026-50581 CVE-2026-50583 CVE-2026-50584 CVE-2026-50585 CVE-2026-50586 CVE-2026-50587 CVE-2026-50588 CVE-2026-50640 CVE-2026-50713 CVE-2026-54435 CVE-2026-54441; do curl -s "https://cveawg.mitre.org/api/cve-id/$id" | jq -r .state; done | sort | uniq -c

Ausgabe

1PUBLISHED14RESERVED

Welche mbedTLS-Linien bekommen noch Korrekturen?

Laut BRANCHES.md bekommen die LTS-Zweige nur noch Fehler- und Sicherheitskorrekturen; neue Funktionen entstehen im Zweig development für die nächste 4.x-Version. Das Projekt schreibt: „Users are urged to always use the latest version of a maintained branch.“

Ab 4.0 liegt die Kryptografie in einem eigenen Projekt, TF-PSA-Crypto, mit eigener Versionsnummer. Mbed TLS 4.0.0 enthält TF-PSA-Crypto 1.0.0. NVD führt sie in den CVE-Konfigurationen unter trustedfirmware:tf-psa-crypto und unter arm:tf-psa-crypto; fragen Sie beide ab. Für TF-PSA-Crypto 1.0.0 führt NVD fünf CVEs, zwei davon ab 9,0, für 1.1.0 bis 1.2.0 keine.

LinieStand 23.10.2026
3.6 LTSKorrekturen bis mindestens März 2027. Aktuell 3.6.7 vom 07.07.2026.
4.1 LTSKorrekturen bis mindestens März 2029. Aktuell 4.1.1 vom 07.07.2026.
4.2Neueste Version 4.2.0 vom 07.07.2026. Kein LTS-Zweig.
4.0Nicht mehr in der Liste der gepflegten Zweige.
3.0 bis 3.5Nicht mehr in der Liste der gepflegten Zweige.
2.282.28.10 vom 24.03.2025 war das letzte Release. Keine Korrekturen mehr.
2.162.16.12 vom 17.12.2021 war das letzte Release.

Unter welchem CPE-Namen steht mbedTLS in der NVD?

Das CPE-Wörterbuch der NVD führt mbedTLS heute unter cpe:2.3:a:trustedfirmware:mbed_tls. Der ältere Name cpe:2.3:a:arm:mbed_tls ist dort bis auf drei Einträge als veraltet markiert. In den Konfigurationen der meisten älteren CVEs steht aber genau dieser Name. Ein dritter Name, cpe:2.3:a:mbed:mbedtls, ist ebenfalls veraltet und lieferte für keine der geprüften Versionen einen Treffer.

Wer nur den aktuellen Namen abfragt, findet für 2.16.12 keine einzige CVE und für 3.6.5 sechs statt elf. Fragen Sie beide Namen ab und führen Sie die Treffer zusammen.

mbedTLS 2.16.12 mit dem aktuellen CPE-Namen
curl -s "https://services.nvd.nist.gov/rest/json/cves/2.0?virtualMatchString=cpe:2.3:a:trustedfirmware:mbed_tls:2.16.12&noRejected" | jq .totalResults
Ausgabe
0
Dieselbe Version mit dem älteren CPE-Namen
curl -s "https://services.nvd.nist.gov/rest/json/cves/2.0?virtualMatchString=cpe:2.3:a:arm:mbed_tls:2.16.12&noRejected" | jq .totalResults
Ausgabe
23

Wo steht die mbedTLS-Version in meiner Firmware?

Im Quellcode steht die Version in include/mbedtls/version.h (2.x) oder include/mbedtls/build_info.h (3.x und 4.x): MBEDTLS_VERSION_STRING, MBEDTLS_VERSION_STRING_FULL und MBEDTLS_VERSION_NUMBER. Die volle Form lautet in älteren Versionen „mbed TLS“, etwa „mbed TLS 2.28.0“, in neueren „Mbed TLS“, etwa „Mbed TLS 3.6.7“. Suchen Sie deshalb ohne Rücksicht auf Groß- und Kleinschreibung.

Im Build steht der Text nur, wenn library/version.c mitgebaut ist (Option MBEDTLS_VERSION_C, in der Standardkonfiguration an) und die Firmware mbedtls_version_get_string() oder mbedtls_version_get_string_full() aufruft. Sonst entfernt ihn der Linker: armlink verwirft ungenutzte Sektionen standardmäßig, GNU ld mit --gc-sections. Fehlt er, zeigen die Funktionsnamen mit dem Präfix mbedtls_, dass die Bibliothek gelinkt ist, und die Version kommt aus dem Header im Projekt.

Ordnernamen helfen nur manchmal. Das Release-Archiv entpackt nach mbedtls-3.6.7/. STM32CubeF4 v1.28.3 legt die Bibliothek unter Middlewares/Third_Party/mbedTLS ab, ohne Version im Namen; der Header dort sagt 2.16.2. STM32CubeU5 und H5 nennen den Ordner mbed-crypto, obwohl darin das volle Mbed TLS 3.6.6 liegt.

Version im Release-Archiv 3.6.7
tar xjf mbedtls-3.6.7.tar.bz2 && grep -E "define MBEDTLS_VERSION_STRING(_FULL)? " mbedtls-3.6.7/include/mbedtls/build_info.h

Ausgabe

#define MBEDTLS_VERSION_STRING         "3.6.7"
#define MBEDTLS_VERSION_STRING_FULL    "Mbed TLS 3.6.7"
Version im Paket STM32CubeF4 v1.28.3
curl -s https://raw.githubusercontent.com/STMicroelectronics/STM32CubeF4/v1.28.3/Middlewares/Third_Party/mbedTLS/include/mbedtls/version.h | grep -E "define MBEDTLS_VERSION_STRING(_FULL)? "

Ausgabe

#define MBEDTLS_VERSION_STRING         "2.16.2"
#define MBEDTLS_VERSION_STRING_FULL    "mbed TLS 2.16.2"

Wie prüfe ich das von Hand?

  1. 1

    Version lesen: im Projekt aus version.h oder build_info.h, im Build mit strings -a firmware.elf | grep -i "mbed tls".

  2. 2

    Prüfen, ob mbedTLS gelinkt ist: arm-none-eabi-nm firmware.elf | grep mbedtls_ listet die Funktionen im Image.

  3. 3

    Linie zuordnen: 3.6 und 4.1 werden gepflegt, 2.28 und 2.16 nicht mehr. Ab 4.0 die Version von TF-PSA-Crypto getrennt lesen (TF_PSA_CRYPTO_VERSION_STRING in tf-psa-crypto/include/tf-psa-crypto/build_info.h im Baum von Mbed TLS 4).

  4. 4

    NVD abfragen: virtualMatchString mit cpe:2.3:a:trustedfirmware:mbed_tls:<Version> und mit cpe:2.3:a:arm:mbed_tls:<Version>, die Treffer zusammenführen.

  5. 5

    Hinweise des Projekts lesen: Security Advisories und Release Notes nennen Lücken, die in der NVD noch fehlen.

  6. 6

    Den KEV-Katalog der CISA auf aktiv ausgenutzte Lücken prüfen.

Was kann ich tun?

  1. 1

    Auf die neueste Version einer gepflegten Linie heben: 3.6.7, 4.1.1 oder 4.2.0. Von 2.16 oder 2.28 führt der kürzeste Weg nach 3.6; die API hat sich dabei geändert, das Projekt beschreibt den Umstieg in docs/3.0-migration-guide.md.

  2. 2

    Bei einer Kopie aus STM32Cube, NXP-SDK, ESP-IDF oder Zephyr die nächste Paketversion prüfen. ESP-IDF v5.5.6 und NXP SDK 26.09.00 liefern 3.6.7, STM32CubeU5 v1.9.0 und Zephyr v4.3.1 noch 3.6.6.

  3. 3

    Bis zum Update entscheidet die Konfiguration. In der Standardkonfiguration von 3.6.7 sind an: MBEDTLS_SSL_PROTO_DTLS, MBEDTLS_SSL_DTLS_CONNECTION_ID, MBEDTLS_SSL_CONTEXT_SERIALIZATION, MBEDTLS_SSL_RENEGOTIATION, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED, MBEDTLS_DHM_C, MBEDTLS_PKCS7_C. Aus sind MBEDTLS_SSL_EARLY_DATA und MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED. Was ein Gerät nicht braucht, schalten Sie in mbedtls_config.h (3.x) oder config.h (2.x) ab.

  4. 4

    CVE-2026-50580 setzt eine sehr lange PSK-Identität voraus. CVE-2026-49300 betrifft laut Projekt nur Anwendungen, die Zertifikate direkt von nicht vertrauenswürdigen Nutzern annehmen. CVE-2026-34877 betrifft nur Anwendungen, die TLS-Sitzungen serialisiert ablegen und wieder laden.

Geht das auch automatisch?

Builds für Mikrocontroller aus Keil MDK, IAR oder GNU Arm. Gefunden werden die eingebauten Bibliotheken mit Version, etwa CMSIS-Packs, RTX5, FreeRTOS, lwIP, mbedTLS und STM32Cube. Dazu Härtung (Stack-Canary, MPU, Privilegientrennung) und eingebettete Schlüssel.

Jede Komponente mit belegter Version wird gegen die Schwachstellenquellen abgeglichen und nennt, wo im Build sie steht. Belegt das Binary keine Version, bleibt das Feld leer.

Häufige Fragen

Welche mbedTLS-Version sollte ich einsetzen?

Die neueste Version einer gepflegten Linie, Stand 23.10.2026 also 3.6.7, 4.1.1 oder 4.2.0. Für 3.6.7 führt NVD eine CVE, die nur mit einer bestimmten LLVM-Optimierung auftritt; das Projekt nennt sie für alle Versionen.

Welche mbedTLS-Version steckt in STM32Cube?

STM32CubeF4 v1.28.3, F7 v1.17.4 und H7 v1.13.0 liefern 2.16.2 mit 39 CVEs in der NVD. STM32CubeU5 v1.9.0 und H5 v1.7.0 liefern 3.6.6 im Ordner mbed-crypto.

Bekommt mbedTLS 2.28 noch Sicherheitskorrekturen?

Nein. Laut Release Notes ist 2.28.10 vom 24.03.2025 das letzte Release der Linie und bekommt keine Fehler- und Sicherheitskorrekturen mehr. NVD führt für 2.28.10 am 23.10.2026 15 CVEs. NXP lieferte 2.28.10 noch im MCUXpresso SDK 25.12.00.

Ist mbedTLS 3.6.6 sicher, weil NVD nur eine CVE führt?

Nein. 3.6.7 vom 07.07.2026 behebt Lücken aus 19 Sicherheitshinweisen, darunter einen Pufferüberlauf im TLS-1.2-Client und eine CA-Fälschung im X.509-Parser. 14 der zugehörigen CVE-Nummern sind am 23.10.2026 nur reserviert und fehlen deshalb in der NVD.

Wird eine mbedTLS-Lücke aktiv ausgenutzt?

Stand 23.10.2026 steht keine mbedTLS-Lücke im Katalog aktiv ausgenutzter Schwachstellen der CISA (Katalogversion 2026.10.23, 1.756 Einträge).

Warum findet meine NVD-Abfrage für eine alte Version nichts?

Weil viele ältere CVEs unter dem veralteten CPE-Namen arm:mbed_tls konfiguriert sind. Fragen Sie zusätzlich zu trustedfirmware:mbed_tls auch diesen Namen ab.

Zählt TF-PSA-Crypto als eigene Komponente in der SBOM?

Ab mbedTLS 4.0 hat TF-PSA-Crypto eine eigene Versionsnummer und eigene CPE-Einträge in der NVD. Damit gehört es mit seiner Version in die Stückliste.

Quellen

  1. [1]Mbed TLS: BRANCHES.md, gepflegte Zweige
  2. [2]Mbed TLS: Release 2.28.10
  3. [3]Mbed TLS: Release 3.6.7
  4. [4]Mbed TLS: Security Advisories
  5. [5]Mbed TLS: Hinweis zu CVE-2026-49300
  6. [6]NIST NVD: CVE-API 2.0
  7. [7]NIST NVD: CPE-Wörterbuch
  8. [8]CISA: Known Exploited Vulnerabilities Catalog

Prüfen Sie Ihr eigenes Image

Im kostenfreien CRA-Readiness-Check laden Sie ein AXF, ein Firmware-Image oder eine Lieferanten-SBOM hoch. Bericht und SBOM bekommen Sie binnen drei Werktagen.