Zum Inhalt springen

Das Magazin für Web-Handwerker Freitag, 23. Oktober 2026

Sicherheit

Node.js schließt kritische RCE-Lücke im Brotli-Decoder

Die Zweige 22, 24 und 26 von Node.js erhalten ein kritisches Sicherheitsupdate gegen eine Remote-Code-Execution-Lücke im Brotli-Decoder sowie mehrere TLS-Umgehungen. Jeder produktive Server sollte umgehend aktualisiert werden, da alle drei gepflegten Zweige betroffen sind.

Node.js hat am 21. Oktober 2026 eine Reihe von Sicherheitsupdates veröffentlicht, die gleichzeitig alle drei gepflegten Zweige betreffen: 22.x, 24.x und 26.x. Die gravierendste Lücke steckt im Brotli-Decoder und erlaubt eine Remote-Code-Execution. Die Veröffentlichung schließt zudem mehrere TLS-Validierungslücken und zählt damit zu den umfangreichsten Sicherheitsupdates des Jahres für Teams, die Node.js produktiv betreiben.

Remote-Code-Execution über den Brotli-Decoder

Die Hauptschwachstelle, als CVE-2026-111497 geführt und mit hoher Schwere eingestuft, stammt aus einem Fehler im eingebauten Brotli-Decoder von Node.js. Ein gezielt präparierter Brotli-Stream kann einen Out-of-Bounds-Write auslösen, ein klassischer Fehlertyp, der beliebige Code-Ausführung auf dem Server ermöglicht. Gemeldet wurde die Lücke vom Sicherheitsteam von OpenAI Codex sowie den Forschern Khai Tran und Sylvie Mayer, behoben von den Maintainern Matteo Collina und Antoine du Hamel.

Jeder Dienst, der nicht vertrauenswürdigen Brotli-Inhalt dekomprimiert, sollte diese Lücke als oberste Priorität behandeln. Betroffen sind die Funktion zlib.brotliDecompress und ihre synchronen Gegenstücke direkt.

TLS: mehrere Umgehungen in derselben Veröffentlichung geschlossen

Dieselbe Veröffentlichung schließt drei TLS-Validierungslücken. Zwei davon lassen einen ungültigen Hostnamen als gültig durchgehen, einmal über Vollbreiten-Ziffern in einem Zertifikat, einmal wenn sich ein Hostname großzügig zu einer IP-Adresse auflöst. Ein dritter Fix betrifft die Zertifikatsvalidierung bei nicht-kanonischen IPv4-Adressen. Diese Lücken betreffen dieselbe TLS-Vertrauenskette, die Node.js bereits im September mit erneuerten NSS-Wurzeln und OpenSSL überarbeitet hatte. Weitere Fixes mit mittlerer bis niedriger Schwere betreffen die Wiederverwendung von Keep-Alive-Sockets, wiederholte Werte aus crypto.randomUUID() sowie zwei Umgehungen des Permission Model, die nur den Zweig 26.x betreffen.

ZweigKorrigierte VersionStatusBrotli-Lücke
22.x22.23.4LTSBetroffen
24.x24.22.1LTS (aktuell)Betroffen
26.x26.12.1Current (aktuell)Betroffen

Betroffene Versionen und Aktualisierung

Alle drei gepflegten Zweige sind betroffen, ein Ausweichen über einen kleineren Versionswechsel scheidet also aus. Eine Anwendung, die noch auf einem End-of-Life-Zweig läuft, bleibt ohne jeden Fix verwundbar, auch gegenüber der Brotli-Lücke. Die Versionsprüfung und das Upgrade bleiben die einzige vom Node.js-Team empfohlene Reaktion.

# Aktive Version prüfen
node --version

# Mit nvm die korrigierte Version des genutzten Zweigs installieren und aktivieren
nvm install 24.22.1
nvm alias default 24.22.1

# Bei einem systemd-Deployment den Dienst neu bauen und neu laden
npm ci --omit=dev
sudo systemctl restart meine-app.service

Ein präparierter Brotli-Input kann einen Out-of-Bounds-Write auslösen, der auf allen drei derzeit gepflegten Zweigen von Node.js zu Remote-Code-Execution führen kann.

Node.js-Versionen, die ihr End of Life erreicht haben, bleiben von der Brotli-Lücke betroffen und erhalten keinen Fix mehr. Ein kurzer Audit der Produktivumgebungen deckt Instanzen auf, die noch auf einem ungepflegten Zweig laufen, bevor sie zum einfachsten Angriffsziel werden.

Was das für Teams bedeutet, die Node.js betreiben

Die Dichte dieser Veröffentlichung, sechs CVEs auf einmal, darunter eine RCE mit hoher Schwere, erinnert daran, dass die Angriffsfläche eines Runtimes weit über den Anwendungscode hinausgeht. Teams, die ein Node.js-Deployment hinter systemd und einem Reverse Proxy betreiben, fahren besser damit, den Versionswechsel zu automatisieren, statt ihn bei jeder Ankündigung manuell zu erledigen. Die TLS-Fixes dieser Veröffentlichung knüpfen zudem an die im September begonnene Erneuerung der TLS-Kette von Node.js an, ein Beleg dafür, dass diese Arbeit weitergeht.

Das Wichtigste in Kürze

Node.js 22.23.4, 24.22.1 und 26.12.1 beheben eine kritische RCE-Lücke im Brotli-Decoder sowie mehrere TLS-Umgehungen. Das Update betrifft jede aktive Installation, auch solche, die erst wenige Tage zuvor veröffentlichte LTS-Versionen nutzen, wie die 24.22.0 aus der Vorwoche. Versionen jenseits des End of Life bleiben verwundbar, ohne dass ein Fix zu erwarten ist.

Diese Art gebündelter Veröffentlichung wirft bei technischen Teams immer dieselbe Frage auf: Wer verfolgt die Sicherheitsankündigungen eines Runtimes tatsächlich, wenn ein Projekt schon seit Monaten produktiv läuft? Die Antwort lautet zu oft: niemand, bis ein Audit oder ein Vorfall die Frage erzwingt. Die Überwachung der Node.js-Sicherheitsveröffentlichungen zu automatisieren, mit einem Alarm, der ein getestetes Update innerhalb von 48 Stunden auslöst, kostet deutlich weniger als ein Dienst, der über eine so verbreitete Abhängigkeit wie die Brotli-Dekodierung kompromittiert wird — Simon Janvier.

Zum Weiterlesen: Die vollständige Sicherheitsmitteilung mit der detaillierten Liste der pro Zweig behobenen CVEs ist im offiziellen Node.js-Blog verfügbar.

Teilen LinkedIn Bluesky Hacker News E-mail

Ebenfalls lesenswert