Node.js-Sicherheitsreleases Oktober 2026: was du aktualisieren musst
Am 21. Oktober 2026 hat das Node.js-Projekt Sicherheitsreleases für alle drei unterstützten Linien veröffentlicht: v26.12.1, v24.22.1 und v22.23.4. Sie schließen zehn Lücken. Vier sind mit hoher Schwere eingestuft, und am meisten Aufmerksamkeit bekommt ein Out-of-Bounds-Write im Brotli-Decoder, der laut Projekt Remote Code Execution erlaubt. Der Fix ist für jede unterstützte Linie schon da. Das ist also ein Routine-Upgrade, und das macht man am besten, solange es noch Routine ist.
Drei Arten von Fix in einem Release
Die vier Lücken mit hoher Schwere sind nicht ein einzelner Bug. Sie liegen in drei verschiedenen Teilen der Runtime, und jede wird von einer anderen Art Code erreicht.
Der Brotli-Decoder (CVE-2026-111497, alle drei Linien). Ein Speicherfehler im nativen Code, der Daten dekomprimiert. Meine Lesart, als allgemeine Überlegung und nicht als Detail aus dem Advisory: Erreicht wird er von Code, der Brotli-Daten dekomprimiert, die jemand anderes kontrolliert. Ein Server, der komprimierte Request-Bodys annimmt, oder ein Client, der Antworten von Drittanbieter-APIs holt und dekomprimiert, fallen beide darunter.
TLS-Hostname-Validierung (CVE-2026-106069 auf allen drei Linien, CVE-2026-105483 auf 26 und 24). Das sind Logikfehler in der Prüfung, ob ein Zertifikat zu dem Host passt, den du erreichen wolltest: einer, wenn der Host lose zu einer IP-Adresse aufgelöst wird, einer, wenn eine IP mit Fullwidth-Ziffern geschrieben ist. Eine verwandte Lücke mittlerer Schwere, CVE-2026-106072, lässt DNS-Namen in einem Zertifikat IP-Endpunkte authentifizieren, die in nicht-kanonischer IPv4-Form geschrieben sind. Betroffen ist jeder Code, der sich mit einem Host oder einer IP verbindet, die aus Nutzereingaben, einer Webhook-Einstellung oder einer Config-Datei stammen.
Umgang mit DNS-Namen (CVE-2026-105482, alle drei Linien). dns.resolve schneidet Namen ab, die ein NUL-Zeichen enthalten. Auch hier als allgemeine Überlegung: Das zählt überall dort, wo ein Name aufgelöst wird, den du nicht selbst geschrieben hast, etwa um ihn gegen eine Allowlist zu prüfen.
Der Rest ist mit mittlerer oder niedriger Schwere eingestuft: ein Keep-alive-Socket, der eine Antwort verarbeitet, die vor dem Senden des Requests geschrieben wurde, Zufallswerte, die sich in Startup-Snapshots wiederholen, sowie Probleme im Permission Model und in ZipFile. Das Release aktualisiert außerdem gebündelte Abhängigkeiten, darunter c-ares, Undici und die CA-Zertifikatsliste, die der kompromittierten Zwischen-CA von eMudhra das Vertrauen entzieht.
Prüf das Node, das wirklich läuft
Dein Laptop ist meistens die unwichtigste Stelle. Die Runtime, die den Traffic bedient, kommt aus einem Docker-Base-Image, und die, die deine Tests ausführt, aus einem CI-Image. Sie alle können auseinanderlaufen.
# on any machine, or inside a running container
node -v
# what a base image really ships, without trusting its tag name
docker run --rm node:22 node -v
Vergleich jede Antwort mit den gefixten Versionen: 26.12.1 oder neuer auf 26, 24.22.1 oder neuer auf 24, 22.23.4 oder neuer auf 22. Ein Tag wie node:22 bewegt sich erst, wenn du es neu ziehst; ein gecachtes Image auf einem Build-Server kann also noch den alten Patch enthalten. Wenn dein Dockerfile eine exakte Version pinnt, heb den Pin an.
Node 20 bekommt nichts
Node 20 „Iron“ hat sein End of Life erreicht; das letzte Update kam am 24. März 2026, und in diesem Release ist es nicht dabei. Das Projekt sagt klar, dass End-of-Life-Versionen immer betroffen sind, wenn ein Sicherheitsrelease erscheint. „Wir sind auf 20, das stand nicht auf der Liste“ heißt also das Gegenteil von sicher. Ungerade Linien wie 25 und 23 sind ebenfalls End of Life. Die Empfehlung des Projekts lautet, in Produktion nur Active-LTS- oder Maintenance-LTS-Linien zu betreiben, also heute 24 oder 22, oder 26, wenn du ein Current-Release in Kauf nimmst.
Der nächste Schritt ist klein: Heb den Pin des Base-Images in deinem Dockerfile und in der CI-Konfiguration auf den gefixten Patch deiner Linie an, bau ohne Cache neu und lass die Testsuite laufen. Wenn du noch auf Node 20 bist, plan den Wechsel auf 22 oder 24 jetzt und nicht erst beim nächsten Advisory. Quelle: nodejs.org, Wednesday, October 21, 2026 Security Releases.
Notizen der Leser