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, Erscheinungsdatum | CVEs 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.2021 | 25 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.2021 | 25 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.2024 | 26 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.2025 | 7 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, Stand | mbedTLS-Version laut Header |
|---|---|
| STM32CubeF4 v1.28.3, F7 v1.17.4, H7 v1.13.0 | 2.16.2 |
| STM32CubeU5 v1.9.0, H5 v1.7.0 | 3.6.6 (Ordner Middlewares/Third_Party/mbed-crypto) |
| NXP MCUXpresso SDK 26.09.00 | 4.2.0 mit TF-PSA-Crypto 1.2.0, dazu 3.6.7 als zweite Kopie |
| NXP MCUXpresso SDK 26.06.00-LTS | 4.1.0, dazu 3.6.6 |
| NXP MCUXpresso SDK 25.12.00 | 2.28.10, dazu 3.6.3 |
| ESP-IDF v6.1 | 4.1.0 |
| ESP-IDF v6.0.3 | 4.1.1 |
| ESP-IDF v5.5.6, v5.3.6, v5.2.8 | 3.6.7 |
| ESP-IDF v5.4.4 | 3.6.5 |
| Zephyr v4.4.2 | 4.1.0 |
| Zephyr v4.3.1 | 3.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.
| CVE | Was, betroffen, Fix |
|---|---|
| CVE-2022-46393 | Heap-Ü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-35409 | Ungü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-47917 | Use-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-34875 | Pufferü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-34873 | Ein 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-34877 | Gespeicherte 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-49300 | X.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-50580 | Pufferü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.
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 -cAusgabe
1PUBLISHED14RESERVEDWelche 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.
| Linie | Stand 23.10.2026 |
|---|---|
| 3.6 LTS | Korrekturen bis mindestens März 2027. Aktuell 3.6.7 vom 07.07.2026. |
| 4.1 LTS | Korrekturen bis mindestens März 2029. Aktuell 4.1.1 vom 07.07.2026. |
| 4.2 | Neueste Version 4.2.0 vom 07.07.2026. Kein LTS-Zweig. |
| 4.0 | Nicht mehr in der Liste der gepflegten Zweige. |
| 3.0 bis 3.5 | Nicht mehr in der Liste der gepflegten Zweige. |
| 2.28 | 2.28.10 vom 24.03.2025 war das letzte Release. Keine Korrekturen mehr. |
| 2.16 | 2.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.
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 .totalResults0curl -s "https://services.nvd.nist.gov/rest/json/cves/2.0?virtualMatchString=cpe:2.3:a:arm:mbed_tls:2.16.12&noRejected" \
| jq .totalResults23Wo 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.
tar xjf mbedtls-3.6.7.tar.bz2 \
&& grep -E "define MBEDTLS_VERSION_STRING(_FULL)? " \
mbedtls-3.6.7/ include/ mbedtls/ build_info.hAusgabe
#define MBEDTLS_VERSION_STRING "3.6.7"
#define MBEDTLS_VERSION_STRING_FULL "Mbed TLS 3.6.7"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
Version lesen: im Projekt aus
version.hoderbuild_info.h, im Build mitstrings -a firmware.elf | grep -i "mbed tls". - 2
Prüfen, ob mbedTLS gelinkt ist:
arm-none-eabi-nm firmware.elf | grep mbedtls_listet die Funktionen im Image. - 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_STRINGintf-psa-crypto/include/tf-psa-crypto/build_info.him Baum von Mbed TLS 4). - 4
NVD abfragen:
virtualMatchStringmitcpe:2.3:a:trustedfirmware:mbed_tls:<Version>und mitcpe:2.3:a:arm:mbed_tls:<Version>, die Treffer zusammenführen. - 5
Hinweise des Projekts lesen: Security Advisories und Release Notes nennen Lücken, die in der NVD noch fehlen.
- 6
Den KEV-Katalog der CISA auf aktiv ausgenutzte Lücken prüfen.
Was kann ich tun?
- 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
- 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 sindMBEDTLS_SSL_EARLY_DATAundMBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED. Was ein Gerät nicht braucht, schalten Sie inmbedtls_config.h(3.x) oderconfig.h(2.x) ab. - 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.