Ein Out-of-Bounds-Write in einem Kompressionsmodul, das millionenfach genutzt wird, kann Remote Code Execution ermöglichen – und betrifft gleich drei aktive Node.js-Release-Linien gleichzeitig. Genau das ist am 21. Oktober 2026 passiert, als das Node.js-Projekt ein dringendes Node.js Sicherheitsupdate veröffentlichte, das acht Schwachstellen schliesst, darunter eine mit hoher Kritikalität im Brotli-Decoder.
Erst vor wenigen Tagen musste das MariaDB-Team kritische SQL-Injection-Lücken im Node.js-Connector schließen – ein weiteres Beispiel dafür, wie eng Sicherheit im Node.js-Ökosystem mit seinen Abhängigkeiten verknüpft ist.Für deutsche Entwickler, Admins und IT-Sicherheitsverantwortliche ist dieses Update kein optionales Routine-Patchen. Die betroffenen Komponenten – Brotli-Dekompression, TLS-Zertifikatsprüfung und DNS-Auflösung – gehören zum Kernbestand nahezu jeder produktiven Node.js-Anwendung. Dieser Artikel ordnet die Fakten ein und gibt konkrete Handlungsempfehlungen.
Inhaltsverzeichnis
Key Takeaways
- Node.js v26.12.1, v24.22.1 und v22.23.4 schliessen insgesamt acht Sicherheitslücken, veröffentlicht am 21. Oktober 2026.
- CVE-2026-111497 (Brotli-Decoder, Out-of-Bounds-Write) gilt als kritischste Einzellücke mit hoher Schweregrad-Einstufung und möglicher Remote Code Execution.
- Zwei TLS-Zertifikat-Bypass-Lücken (CVE-2026-105483 und CVE-2026-106069) erlauben unter bestimmten Bedingungen die Umgehung der Hostname-Prüfung.
- Zusätzlich wurden c-ares, ein kompromittiertes eMudhra-Intermediate-CA-Zertifikat, OpenSSL, SQLite und Undici aktualisiert.
- Am selben Tag veröffentlichte auch das PHP-Projekt ein Notfall-Update gegen zwei kritische RCE-Lücken – ein bemerkenswerter zeitlicher Zufall für beide grossen Backend-Technologien.
Was das Node.js Sicherheitsupdate vom 21. Oktober 2026 umfasst
Am Mittwoch, dem 21. Oktober 2026, hat das Node.js-Projekt Patches für drei aktiv gepflegte Release-Linien veröffentlicht:
| Release-Linie | Neue Version |
|---|---|
| Node.js 26.x | v26.12.1 |
| Node.js 24.x | v24.22.1 |
| Node.js 22.x | v22.23.4 |
Diese Linien decken sowohl die aktuelle als auch die LTS-Versionen ab, die in vielen Unternehmen produktiv im Einsatz sind. Wer eine dieser drei Linien betreibt, sollte das Update als prioritär einstufen.
Neben den eigentlichen Code-Fixes wurden im Rahmen dieses Node.js Sicherheitsupdates mehrere Abhängigkeiten aktualisiert:
- c-ares – die zugrunde liegende DNS-Bibliothek
- CA-Zertifikat-Bundle – wegen eines kompromittierten eMudhra-Intermediate-CA-Zertifikats
- OpenSSL – bei den Linien 24.x und 22.x
- SQLite – bei der Linie 22.x
- Undici – bei allen drei Linien (26.x, 24.x, 22.x)
Die Aktualisierung des CA-Zertifikat-Bundles verdient besondere Aufmerksamkeit: Ein kompromittiertes Intermediate-CA-Zertifikat von eMudhra wurde aus dem Vertrauensspeicher entfernt. Solche Zertifikate können theoretisch zur Ausstellung gefälschter Zertifikate missbraucht werden, weshalb ihre Entfernung aus der Vertrauenskette eine wichtige Absicherungsmassnahme ist.
Die kritischste Lücke: Brotli-Decoder ermöglicht Remote Code Execution
Im Zentrum dieses Node.js Sicherheitsupdates steht CVE-2026-111497. Es handelt sich um ein Out-of-Bounds-Write im Brotli-Decoder von Node.js.
Brotli ist ein Kompressionsformat, das Node.js nativ eingebunden hat und unter anderem bei der Verarbeitung komprimierter HTTP-Antworten verwendet. Immer dann, wenn eine Node.js-Anwendung Daten empfängt, die Brotli-komprimiert sind – etwa Antworten von externen APIs oder Proxy-Servern – kommt dieser Decoder zum Einsatz.
Ein Out-of-Bounds-Write bedeutet, dass ein Programm Speicherbereiche beschreibt, die ausserhalb des eigentlich vorgesehenen Puffers liegen. In der Folge kann Speicher überschrieben werden, der für andere Zwecke reserviert ist – ein klassisches Einfallstor für Remote Code Execution.
Die Lücke wurde von mcollina gemeldet und von aduh95 behoben – beides bekannte Namen innerhalb der Node.js-Kernentwicklung. Die Einstufung lautet "high" (hoch), die Lücke betrifft alle drei aktualisierten Linien: 26.x, 24.x und 22.x.
Warum ist das besonders gefährlich? Weil ein Angreifer unter Umständen keine direkte Interaktion mit der Zielanwendung braucht – es genügt, dass die Anwendung eine präparierte, Brotli-komprimierte Antwort verarbeitet. Server, die Daten von Drittanbietern dekomprimieren, Reverse-Proxys und Microservice-Architekturen mit interner Kompression sind potenziell exponiert.
TLS-Zertifikat-Bypass: Wenn die Hostname-Prüfung versagt
Neben der Brotli-Lücke enthält das Update zwei weitere als "hoch" eingestufte Schwachstellen, die die TLS-Zertifikatsprüfung betreffen:
CVE-2026-105483 beschreibt einen TLS-Zertifikat-Hostname-Bypass, der auftritt, wenn IP-Adressen in vollbreiten (fullwidth) Ziffern angegeben werden. Dabei handelt es sich um Unicode-Zeichen, die optisch wie normale Ziffern aussehen, aber technisch anders codiert sind. Die Prüfroutine erkennt diese Darstellung offenbar nicht korrekt als IP-Adresse, wodurch die Hostname-Validierung umgangen werden kann. Betroffen sind die Linien 26.x und 24.x.
CVE-2026-106069 ist ein ähnlich gelagerter TLS-Zertifikat-Hostname-Bypass, der auftritt, wenn ein Host-Name lose zu einer IP-Adresse aufgelöst wird. Auch hier kann die Validierung des Zertifikats gegen den tatsächlichen Verbindungspartner fehlschlagen. Diese Lücke betrifft alle drei Linien: 26.x, 24.x und 22.x.
Beide Schwachstellen können in der Praxis für Man-in-the-Middle-Angriffe relevant werden: Ein Angreifer könnte sich zwischen Client und eigentlichen Server schalten und trotz fehlerhaftem oder fremdem Zertifikat als vertrauenswürdig erscheinen. Für Anwendungen, die TLS-Verbindungen zu externen Diensten aufbauen und sich auf die eingebaute Zertifikatsprüfung verlassen, ist das ein ernstzunehmendes Risiko.
Weitere hoch eingestufte Lücke: fehlerhafte DNS-Namenskürzung
CVE-2026-105482 betrifft die Funktion dns.resolve, die Namen mit NUL-Zeichen fehlerhaft abkürzt. Diese Lücke betrifft ebenfalls alle drei Linien 26.x, 24.x und 22.x. NUL-Byte-Probleme sind in der Softwaresicherheit ein bekanntes Muster: Wird ein String an einer Stelle abgeschnitten, die der Entwickler nicht erwartet, können Prüfungen umgangen oder Auflösungen manipuliert werden.
Schwachstellen mit mittlerer Einstufung
Neben den vier hoch eingestuften Lücken wurden drei Schwachstellen mit mittlerer Kritikalität behoben:
- CVE-2026-105481: Ein Keep-Alive-Socket kann eine Antwort verarbeiten, die bereits geschrieben wurde, bevor die eigentliche Anfrage gesendet wurde – ein Timing-Problem bei wiederverwendeten Verbindungen.
- CVE-2026-106072: Eine fehlerhafte Zertifikatsprüfung bei nicht-kanonischen IPv4-Hostnamen erlaubt es, dass DNS-SANs (Subject Alternative Names) IP-Endpunkte authentifizieren, obwohl dies nicht vorgesehen ist.
- CVE-2026-106074: Die Entropie-Caches von
crypto.randomUUID()undrandomInt()werden in Startup-Snapshots beziehungsweise Single Executable Applications (SEAs) gespeichert. Dadurch kann jeder Prozess, der aus demselben Snapshot gestartet wird, wiederholt dieselben Werte erzeugen – ein Problem für Anwendungen, die auf echte Zufälligkeit angewiesen sind, etwa bei Session-Token oder UUIDs.
Niedrig eingestufte Lücken nur in Node.js 26.x
Zwei Schwachstellen mit niedriger Einstufung betreffen ausschliesslich die aktuelle 26.x-Linie:
- CVE-2026-106070: Die Node.js-ZipFile-Implementierung gibt nach einer fehlgeschlagenen ZIP-Header-Validierung angreiferkontrollierte Prefix-Bytes zurück.
- CVE-2026-106071: Im Permission Model führt ein Wildcard-Radix-Lookup zu überzogenen Dateisystemrechten.
Auch wenn diese Einstufung niedrig ist, sollten sie im Rahmen des ohnehin anstehenden Updates mitbehoben werden.
Handlungsempfehlungen für Node.js-Admins
Angesichts der Kritikalität – insbesondere der RCE-fähigen Brotli-Lücke und der TLS-Bypass-Probleme – empfiehlt sich folgendes Vorgehen:
- Sofort prüfen, welche Node.js-Version produktiv eingesetzt wird. Wer 26.x, 24.x oder 22.x betreibt, ist von mindestens einer der hoch eingestuften Lücken betroffen.
- Patch einspielen: Aktualisierung auf v26.12.1, v24.22.1 beziehungsweise v22.23.4, abhängig von der eingesetzten Linie.
- Abhängigkeiten in CI/CD-Pipelines prüfen: Docker-Base-Images, Buildserver und Deployment-Skripte sollten auf die neuen Versionsnummern verweisen.
- Anwendungen mit Brotli-Dekompression priorisieren: Services, die externe oder nicht vollständig vertrauenswürdige komprimierte Inhalte verarbeiten, sollten vorrangig aktualisiert werden.
- TLS-Verbindungen zu kritischen Diensten nach dem Update erneut testen, insbesondere wenn Hostnamen dynamisch aufgelöst werden oder internationale Zeichensätze verwendet werden können.
- Zertifikatsvertrauen überprüfen: Sicherstellen, dass das aktualisierte CA-Zertifikat-Bundle korrekt ausgeliefert wird und das kompromittierte eMudhra-Intermediate-Zertifikat nicht mehr als vertrauenswürdig eingestuft wird.
- Monitoring verstärken: Nach dem Patchen sollten Logs auf ungewöhnliche TLS-Fehler oder Verbindungsabbrüche geprüft werden, da strengere Zertifikatsprüfungen in seltenen Fällen bestehende, fehlerhaft konfigurierte Verbindungen beeinträchtigen können.
Zeitliche Koinzidenz mit PHP-Sicherheitsupdate
Bemerkenswert ist, dass am selben Tag – dem 21. Oktober 2026 – auch das PHP-Projekt ein eigenes Notfall-Sicherheitsupdate veröffentlichte. Die Versionen PHP 8.5.12, 8.4.27, 8.3.36 und 8.2.35 schliessen zwei kritische RCE-Lücken mit einem CVSS-Wert von 9.2. Beide Vorfälle sind voneinander unabhängig und betreffen unterschiedliche Technologie-Stacks. Dennoch zeigt der zeitliche Zufall, dass Teams, die sowohl Node.js- als auch PHP-basierte Systeme betreiben, an diesem Tag gleich zwei kritische Patch-Zyklen parallel durchführen mussten.
Fazit
Das Node.js Sicherheitsupdate vom 21. Oktober 2026 gehört zu den Updates, die nicht aufgeschoben werden sollten. Die Kombination aus einer RCE-fähigen Brotli-Lücke mit hoher Schweregrad-Einstufung, zwei TLS-Zertifikat-Bypass-Problemen und einer fehlerhaften DNS-Namensverarbeitung macht deutlich, wie tief die betroffenen Komponenten in gängigen Node.js-Anwendungen verankert sind.
Für deutsche Entwickler und IT-Sicherheitsverantwortliche gilt: Die Versionen v26.12.1, v24.22.1 und v22.23.4 sollten zeitnah in Produktivumgebungen eingespielt werden. Wer Node.js in Containern, Serverless-Umgebungen oder klassischen Server-Setups betreibt, sollte den Patch-Status seiner Systeme noch heute prüfen und die Aktualisierung priorisieren – insbesondere dort, wo komprimierte HTTP-Antworten verarbeitet oder TLS-Verbindungen zu externen Diensten aufgebaut werden.



