Wissen · Bare-Metal

lwIP-Schwachstellen nach Version: was NVD führt und was fehlt

Für lwIP 2.2.1 findet die NVD-Versionsabfrage nichts, obwohl fünf CVEs aus 2026 laut CNA 2.2.1 betreffen.

Ihre Korrekturen liegen nur auf dem master-Zweig, in keinem Release, und fehlen in den Kopien von STM32Cube und ESP-IDF. Die Version steht in lwip/init.h.

Daten abgefragt 23. Oktober 2026 · Seite aktualisiert 30. Oktober 2026 · 8 Min. LesezeitDie Konformitätsaussage treffen Sie. Diese Seite und unsere Berichte liefern technische Feststellungen als Grundlage dafür.

Auf einen Blick
Aktuelles Release
2.2.1, 06.02.2025
NVD-CVEs per CPE
nur zwei
CNA-CVEs 2026 für 2.2.1
fünf, vier davon mit CVSS ab 8,8
Korrekturen 2026
nur auf dem master-Zweig
In STM32CubeF4 und F7
2.1.2

NVD, abgefragt 23.10.2026

Welche CVEs hat meine lwIP-Version?

NVD führt lwIP unter einem CPE-Namen, cpe:2.3:a:lwip_project:lwip. Gezählt sind CVEs, deren NVD-Konfiguration die Version als verwundbar führt, abgefragt am 23.10.2026 ohne zurückgezogene Einträge. Dazu steht je Version, welche weiteren CVEs der CNA in seinem Eintrag bei CVE.org als betroffen nennt.

CVE-2020-22283 (ICMPv6, CVSS 7,5) ist in NVD ohne Versionsnummer konfiguriert. Sie fällt deshalb bei jeder Versionsabfrage heraus. Ihr Text nennt den damaligen Git-Stand.

Version, ErscheinungsdatumNVD per CPE, dazu laut CNA
1.4.1, 17.12.2012NVD: CVE-2014-4883, DNS-Resolver ohne zufällige IDs und Quellports, CVSS 2.0: 4,3. Der CNA-Eintrag zu CVE-2026-112062 (mDNS) reicht bis Version 0 zurück; der Quellbaum von 1.4.1 enthält aber kein mDNS-Modul.
2.0.3, 16.09.2017NVD: keine. Laut CNA: CVE-2026-112062 (mDNS), CVE-2026-87121 (MQTT), CVE-2026-91018 (API).
2.1.2, 22.11.2018 (STM32CubeF4 v1.28.3, F7 v1.17.4, H7 am Tag v1.13.0)NVD: CVE-2020-22284, Pufferüberlauf in zepif_linkoutput() (6LoWPAN über ZEP), CVSS 7,5. CVE-2020-22283 (ICMPv6, 7,5) steht in der NVD ohne Version; ST nennt sie im Hinweis SA0037 für lwIP bis 2.1.2, behoben ab 2.1.3. Laut CNA dazu: CVE-2026-8836 (SNMPv3), CVE-2026-112062, CVE-2026-87121, CVE-2026-91018.
2.1.3, 10.11.2021 (Basis der Kopie in ESP-IDF v5.2.8 und v5.3.6)NVD: keine. Laut CNA: CVE-2026-8836, CVE-2026-112062, CVE-2026-87121, CVE-2026-91018.
2.2.0, 25.09.2023 (Basis der Kopie in ESP-IDF v5.4.4 bis v6.1)NVD: keine. Laut CNA: CVE-2026-8836, CVE-2026-112062, CVE-2026-87121, CVE-2026-91018.
2.2.1, 06.02.2025 (STM32CubeH7 auf master)NVD: keine. Laut CNA: die vier aus 2.2.0 und CVE-2026-15340 (SMTP-Client).
lwIP 2.2.1 per CPE in der NVD
curl -s "https://services.nvd.nist.gov/rest/json/cves/2.0?virtualMatchString=cpe:2.3:a:lwip_project:lwip:2.2.1&noRejected" | jq .totalResults
Ausgabe
0

Welche lwIP-CVEs kamen 2026, und wo liegt die Korrektur?

Alle fünf sind in der NVD veröffentlicht, aber ohne CPE-Konfiguration: CVE-2026-8836 mit Status „Deferred“, die anderen mit „Awaiting Analysis“. Die CVSS-Werte stammen vom CNA. Jede Lücke sitzt in einem Modul, das nicht jeder Build enthält. Für drei davon hat CISA im September und Oktober 2026 eigene Hinweise für Industriesteuerungen veröffentlicht (ICSA-26-265-01, ICSA-26-265-02, ICSA-26-279-02), mit dem Commit, der die Lücke schließt.

CVEModul, betroffen laut CNA, CVSS, Korrektur
CVE-2026-8836SNMPv3, Stack-Überlauf in snmp_parse_inbound_frame. 2.1.0 bis 2.2.1, 9,8. Commit 0c957ec0 vom 13.05.2026.
CVE-2026-87121MQTT-Client, Schreibzugriff über das Ende von rx_buffer. 2.0.1 bis 2.2.1, 9,8. CISA nennt Commit f89407ea vom 31.08.2026; die Änderung in mqtt.c steht im Commit davor, 68b2c119 „mqtt: fix rx_buffer overrun“.
CVE-2026-15340SMTP-Client: eine lange AUTH-Zeile des Servers läuft über tx_buf. 2.2.1, 9,8. Commit 614420f8 vom 12.05.2026.
CVE-2026-91018Double Free in der lwIP-API. 2.0.1 bis 2.2.1, 8,8. CISA nennt Commit f873b629 vom 31.08.2026, eine Änderung in lowpan6.c.
CVE-2026-112062mDNS, Stack-Schreibzugriff in mdns_handle_response. Bis 2.2.1, 5,9. Commit ab2f69c7 vom 27.05.2026.

Wie wird lwIP gepflegt?

lwIP wird auf Savannah entwickelt. Das neueste Release ist 2.2.1 vom 06.02.2025. Auf dem master-Zweig liegen seither 52 Commits, der letzte vom 27.10.2026, darunter alle fünf Korrekturen oben, eine Prüfung der TCP-Optionen und weitere Sicherheitskorrekturen vom 18. bis 27.10. (SNMP, 6LoWPAN, MQTT, PPP, TFTP). Ein Release mit diesen Korrekturen gibt es am 30.10.2026 nicht.

Auf master trägt init.h die Revision 2 mit LWIP_RC_DEVELOPMENT. Ein Build von diesem Stand meldet sich als 2.2.2 mit dem Suffix „d“ für Entwicklung.

Steht der SNMPv3-Patch in einem Release?
git tag --contains 0c957ec0 | wc -l
Ausgabe
0
Steht der SMTP-Fix in einem Release?
git tag --contains 614420f8 | wc -l
Ausgabe
0
Version auf master
grep -E "#define LWIP_VERSION_(REVISION|RC) " src/include/lwip/init.h

Ausgabe

#define LWIP_VERSION_REVISION   2
#define LWIP_VERSION_RC         LWIP_RC_DEVELOPMENT

Welche lwIP-Version steckt in STM32Cube, NXP-SDK und ESP-IDF?

Viele Geräte bekommen lwIP über das SDK des Chipherstellers. Diese Kopien tragen eigene Änderungen. Ob die Korrekturen von 2026 darin stehen, zeigt der Quelltext: geprüft an den Zeilen, die jede Korrektur ändert, in den Dateien snmp_msg.c, smtp.c, mdns.c, mqtt.c und lowpan6.c, Stand 23.10.2026.

Bei STM32CubeH7 v1.13.0 nennen Release Notes und SBOM lwIP 2.2.1. Das Submodul am Git-Tag v1.13.0 zeigt aber auf ST-Tag v2.1.2_20190315, also lwIP 2.1.2 mit CVE-2020-22283 und CVE-2020-22284. Erst der master-Zweig zeigt seit dem 27.03.2026 auf v2.2.1_20250804.

NXP hat sein lwIP am 16.06.2026 auf den Upstream-Stand 3d896ba0 gebracht. Darin stehen die Korrekturen für SNMPv3, SMTP und mDNS. Die beiden Korrekturen vom 31.08.2026 fehlen, für MQTT und, laut CISA, für CVE-2026-91018. Die Datei mqtt.c im SDK ist identisch mit dem Stand davor.

Paket, StandlwIP-Version, Korrekturen von 2026
STM32CubeF4 v1.28.3, F7 v1.17.42.1.2. Keine der Korrekturen.
STM32CubeH7 v1.13.02.1.2 am Git-Tag, 2.2.1 auf master und laut Release Notes. Keine der Korrekturen.
NXP MCUXpresso SDK 26.09.002.2.2 in Entwicklung (Upstream-Stand vom 16.06.2026). SNMPv3, SMTP und mDNS korrigiert. MQTT und CVE-2026-91018 nicht.
ESP-IDF v5.4.4 bis v6.12.2.0 in Entwicklung (Fork esp-lwip). Keine der Korrekturen im Code. Das Build-System von ESP-IDF übersetzt aus src/apps nur SNTP und NetBIOS und baut lowpan6.c nicht; die Dateien der fünf Korrekturen sind nicht im Image.
ESP-IDF v5.2.8, v5.3.62.1.3 in Entwicklung (Fork esp-lwip). Wie oben nur SNTP und NetBIOS aus src/apps, ohne lowpan6.c.
mqtt.c im NXP-SDK 26.09.00 gegen die MQTT-Korrektur
curl -s https://raw.githubusercontent.com/nxp-mcuxpresso/lwip/a819058895af886fce65250cd82a8cf52a1b980d/src/apps/mqtt/mqtt.c | diff - <(git show 68b2c119:src/apps/mqtt/mqtt.c)

Ausgabe

862c862,866
<         client->rx_buffer[client->msg_idx++] = b;
---
>         if (client->msg_idx < MQTT_VAR_HEADER_BUFFER_LEN) {
>           client->rx_buffer[client->msg_idx++] = b;
>         } else {
>           return MQTT_CONNECT_DISCONNECTED;
>         }

Haben die SDK-Kopien eigene Änderungen und Lücken?

ST listet seine Änderungen in st_readme.txt. Im Eintrag vom 22.04.2016 steht: „Use updated version of LwIP v1.4.1 by integrating latest sources from LwIP Git Repository“, mit einem Commit vom 11.02.2016. Im lwIP-Git trägt dieser Commit die Version 1.5.0 in Entwicklung.

Manche Lücken führt NVD unter dem Produkt des SDK-Herstellers. CVE-2026-45160 betrifft den DHCP-Server im lwIP-Teil von ESP-IDF, CVSS 6,5, und steht unter espressif:esp-idf für 5.2.7, 5.3.5, 5.4.4, 5.5.4 und 6.0.1. Das Advisory von Espressif nennt als Korrektur 5.2.8, 5.3.6, 5.4.5, 5.5.5 und 6.0.2; eine Version 5.4.5 gibt es am 23.10.2026 nicht. CVE-2026-74222 betrifft U-Boot vor 2026.10-rc5, dessen wget auf lwIP aufsetzt; NVD hat sie noch keinem Produkt zugeordnet.

Eine Versionsnummer ist deshalb der Anfang der Prüfung. Ob eine Korrektur enthalten ist, steht in den Release Notes des SDK oder im Quelltext der Kopie.

Wo steht die lwIP-Version in meiner Firmware?

Im Quellcode steht die Version in src/include/lwip/init.h. Aus den drei Makros setzt lwIP LWIP_VERSION_STRING zusammen. Der Kern des Stacks schreibt diesen Text nicht ins Image. Das tun die HTTP-Module: der Webserver sendet ihn im Header „Server: lwIP/2.2.1 (http://savannah.nongnu.org/projects/lwip)“, der HTTP-Client als Kennung. Ist einer davon gebaut, steht die Version als Text im Image. Bei der Standardeinstellung LWIP_HTTPD_DYNAMIC_HEADERS 0 steht der Header in den Dateidaten, die makefsdata erzeugt hat; die Version darin ist die des makefsdata-Laufs.

Ohne HTTP-Modul bleiben Symbole und Pfade. Funktionen wie lwip_init, tcp_input und etharp_output zeigen, dass lwIP gelinkt ist. Die Standarddefinition von LWIP_PLATFORM_ASSERT gibt den Namen der Quelldatei aus. Bleibt sie aktiv, steht der Pfad der lwIP-Quellen im Image. Das Release-Archiv lwip-2.2.1.zip entpackt nach lwip-2.2.1/; bleibt dieser Ordnername im Projekt, steht die Version im Pfad.

Version im Release 2.2.1
grep -E "#define LWIP_VERSION_(MAJOR|MINOR|REVISION|RC) " src/include/lwip/init.h

Ausgabe

#define LWIP_VERSION_MAJOR      2
#define LWIP_VERSION_MINOR      2
#define LWIP_VERSION_REVISION   1
#define LWIP_VERSION_RC         LWIP_RC_RELEASE
Wo der Versionstext ins Image kommt, im Release 2.2.1
grep -n "define HTTPD_SERVER_AGENT" src/include/lwip/apps/httpd_opts.h

Ausgabe

172:#define HTTPD_SERVER_AGENT "lwIP/" LWIP_VERSION_STRING " (http://savannah.nongnu.org/projects/lwip)"

Wie prüfe ich das von Hand?

  1. 1

    Version lesen: src/include/lwip/init.h im Projekt. Im Build findet strings -a firmware.elf | grep "lwIP/" die Kennung, wenn ein HTTP-Modul gebaut ist.

  2. 2

    Prüfen, ob lwIP gelinkt ist: arm-none-eabi-nm firmware.elf | grep -E " (lwip_init|tcp_input|etharp_output)$".

  3. 3

    Herkunft klären: Upstream-Release, Git-Stand (LWIP_RC_DEVELOPMENT) oder Kopie aus einem SDK. Bei einer SDK-Kopie die Release Notes des SDK lesen, bei STM32Cube aus GitHub den Submodul-Stand.

  4. 4

    NVD abfragen: virtualMatchString=cpe:2.3:a:lwip_project:lwip:<Version>. Dazu eine Stichwortsuche nach „lwIP“, weil neue CVEs noch ohne CPE-Konfiguration sein können, und die CNA-Einträge bei CVE.org lesen.

  5. 5

    Module prüfen: LWIP_SNMP, LWIP_SNMP_V3, LWIP_MDNS_RESPONDER und LWIP_IPV6 stehen in der Standardkonfiguration auf 0 und werden in lwipopts.h eingeschaltet. MQTT und SMTP sind eigene Dateien unter src/apps, die nur gebaut werden, wenn das Projekt sie einbindet. Im NXP-SDK schalten CONFIG_MCUX_COMPONENT_middleware.lwip.apps.mqtt und CONFIG_MCUX_COMPONENT_middleware.lwip.apps.mdns die Module zu.

  6. 6

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

Was kann ich tun?

  1. 1

    Ein Gerät mit SNMPv3, MQTT, SMTP oder mDNS aus lwIP: die fünf Commits aus der Tabelle oben übernehmen oder auf den aktuellen master-Stand (27.10.2026) gehen; vom 18. bis 27.10. kamen weitere Sicherheitskorrekturen dazu (SNMP, 6LoWPAN, MQTT, PPP, TFTP). Ein Release mit allen Korrekturen gibt es nicht.

  2. 2

    Im NXP-SDK 26.09.00: die Commits 68b2c119 (MQTT, eine Zeile in mqtt.c) und f873b629 nachziehen.

  3. 3

    lwIP 2.1.2 aus STM32Cube: CVE-2020-22283 und CVE-2020-22284 sind ab 2.1.3 behoben; ST stellt die korrigierte Fassung im Repository stm32-mw-lwip bereit.

  4. 4

    Module, die das Gerät nicht braucht, in lwipopts.h abschalten oder die Dateien aus dem Build nehmen. Eine Lücke in einem Modul, das nicht gebaut ist, steht nicht im Image.

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 lwIP-Version ist aktuell?

Das neueste Release ist 2.2.1 vom 06.02.2025. Der master-Zweig trägt 2.2.2 in Entwicklung, mit Korrekturen, die in keinem Release stehen.

Ist lwIP 2.2.1 frei von bekannten Lücken?

Nein. Per CPE ordnet NVD 2.2.1 keine CVE zu, aber fünf CVEs aus 2026 nennen 2.2.1 in ihrem CNA-Eintrag als betroffen, für SNMPv3, MQTT, SMTP, mDNS und die API. Ob eine davon ein Gerät betrifft, hängt davon ab, ob das Modul gebaut ist.

Welche lwIP-Version steckt in STM32Cube?

STM32CubeF4 v1.28.3 und F7 v1.17.4 liefern 2.1.2. STM32CubeH7 v1.13.0 liefert am Git-Tag 2.1.2, auf master 2.2.1. STM32CubeU5 und H5 liefern kein lwIP, sie setzen auf NetX Duo.

Ist das lwIP in ESP-IDF von den CVEs aus 2026 betroffen?

Der betroffene Code liegt in der Kopie von ESP-IDF unkorrigiert. Das Build-System von ESP-IDF übersetzt die betroffenen Dateien aber nicht. Für den DHCP-Server von ESP-IDF gilt CVE-2026-45160.

Wird eine lwIP-Lücke aktiv ausgenutzt?

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

Mein lwIP kommt aus dem SDK des Chipherstellers. Gilt die Tabelle?

Als Ausgangspunkt. Die Kopie im SDK kann Korrekturen enthalten, die die Versionsnummer nicht zeigt, oder eigene Lücken haben, die NVD unter dem SDK führt. Die Release Notes und der Quelltext des SDK entscheiden.

Quellen

  1. [1]lwIP auf Savannah
  2. [2]lwIP: Git-Repository
  3. [3]NVD: CVE-2020-22284
  4. [4]NVD: CVE-2026-8836
  5. [5]CVE.org: CVE-2026-15340
  6. [6]CISA: ICSA-26-265-01, lwIP MQTT-Client
  7. [7]STMicroelectronics: Sicherheitshinweis SA0037 zu CVE-2020-22283 und CVE-2020-22284
  8. [8]NXP: lwIP für MCUXpresso SDK, CHANGELOG.md
  9. [9]Espressif: GHSA-g764-gwc3-75m5 zu CVE-2026-45160
  10. [10]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.