Node.js hat am 21. Oktober 2026 die Security-Releases 26.12.1 (Current), 24.22.1 und 22.23.4 (LTS) veröffentlicht. Die Node.js Sicherheitslücken umfassen zehn projekteigene Schwachstellen, vier davon mit Schweregrad „high“. Die schwerwiegendste ist CVE-2026-111497: ein Out-of-bounds Write im Brotli-Decoder, über den Angreifer aus der Ferne Code auf dem Zielsystem ausführen können. Betroffen sind alle Installationen der Linien 26.x, 24.x und 22.x vor den genannten Versionsständen.
Neben den zehn CVEs korrigieren die Releases mehrere Abhängigkeiten und sperren im mitgelieferten Zertifikatsspeicher die kompromittierte eMudhra-Intermediate-CA. Ein Workaround ist nicht beschrieben – der Weg führt über das Update.
Node.js Sicherheitslücken: CVE-2026-111497 und die DNS-Trunkierung
Der Brotli-Decoder verarbeitet komprimierte Datenströme, wie sie etwa HTTP-Antworten mit dem Header Content-Encoding: br enthalten. Ein Out-of-bounds Write an dieser Stelle wiegt schwer, weil komprimierte Nutzdaten in vielen Setups aus dem Netz kommen und der Decoder im Prozesskontext der Anwendung läuft. Ob die Lücke bereits ausgenutzt wird, ist nicht bekannt; Angaben zu konkreten Angriffsvoraussetzungen oder kursierenden Exploits gibt es bislang nicht. Praktisch relevant ist sie für jeden Dienst, der Brotli-Daten aus nicht vertrauenswürdigen Quellen dekomprimiert.
Ebenfalls als „high“ eingestuft ist CVE-2026-105482: dns.resolve schneidet Namen mit NUL-Zeichen ab. Ein Name kann dadurch auf einen anderen Host auflösen, als der aufrufende Code erwartet – eine Diskrepanz zwischen Prüfung und Nutzung, die in Allowlist-Logik direkt durchschlägt. Die Lücke steckt in allen drei Release-Linien.
TLS-Hostname-Bypässe: CVE-2026-105483 und CVE-2026-106069
Zwei der vier High-Fixes sitzen in der TLS-Zertifikatsprüfung. CVE-2026-105483 betrifft Hostnamen, die als IP-Adresse in Vollbreiten-Ziffern notiert sind: Die Normalisierung erkennt sie nicht als IP-Adresse, in der Folge lässt sich die Hostnamen-Prüfung umgehen. Betroffen sind ausschließlich 26.x und 24.x, 22.x bleibt außen vor.
CVE-2026-106069 trifft alle drei Linien. Löst ein Hostname lose auf eine IP-Adresse auf, greift die Prüfung nicht mehr zuverlässig. Beide Lücken wiegen für alle schwer, die ausgehende Verbindungen gegen fremde Endpunkte absichern: Wer sich beim Aufbau von TLS-Verbindungen auf die eingebaute Prüfung verlässt, verlässt sich nach dem Patch auf korrigierte Logik – und davor auf eine, die sich austricksen lässt. Eigene Prüf- oder Pinning-Logik, die hostnamenbasierte Vergleiche nachbaut, sollte unabhängig vom Node.js-Update gegengelesen werden.
eMudhra: Node.js weist kompromittierte Zertifikatsketten ab
Mit dem Update des ca-cert-Pakets ist der Vermerk „eMudhra Intermediate CA Compromise“ verbunden, und zwar in allen drei Linien. Für die Praxis heißt das: TLS-Verbindungen zu Servern, deren Kette ein gesperrtes Zwischenzertifikat enthält, können künftig scheitern, auch wenn dem Wurzelzertifikat weiterhin vertraut wird.
Dazu kommt der Commit „tls: reject chains containing blocked public keys“ (Ulises Gascon, #66871), der nicht nur einzelne Zertifikate, sondern ganze Ketten mit gesperrten öffentlichen Schlüsseln zurückweist. Das ist der technisch interessantere Teil: Vertrauen wird nicht mehr allein über die Root-Liste gesteuert, sondern zusätzlich über eine Sperrliste im TLS-Stack. Anwendungen, die Verbindungsfehler bisher als „Netzwerkproblem“ behandeln, sollten mit neuen, harten TLS-Fehlern rechnen.
Medium und Low: Entropie-Caches, Keep-alive und Permission Model
Drei Lücken sind als „medium“ eingestuft. CVE-2026-106074 verdient Aufmerksamkeit, weil sie die Zufallswerte selbst trifft: Entropie-Caches von crypto.randomUUID() und crypto.randomInt() landen in User-Land-Startup-Snapshots und in Single Executable Applications, wodurch jeder Prozess dieselben Werte erzeugt. Wer randomUUID() als Token- oder Session-Quelle nutzt statt als reine ID, sollte diesen Fix priorisieren. CVE-2026-105481 beschreibt einen Keep-alive-Socket, der eine Antwort verarbeitet, die vor der eigentlichen Anfrage geschrieben wurde; CVE-2026-106072 eine fehlerhafte Zertifikatsvalidierung bei nicht-kanonischen IPv4-Hostnamen, bei der DNS-SANs IP-Endpunkte authentifizieren können.
Auf „low“ stehen CVE-2026-106070 und CVE-2026-106071, die ausschließlich für 26.x gelistet sind: ein ZipFile-Fehler, bei dem nach fehlgeschlagener ZIP-Header-Validierung angreiferkontrollierte Prefix-Bytes zurückkommen, und ein Over-Grant im Permission Model über einen Wildcard-Radix-Lookup. CVE-2026-106073 schließlich erlaubt einen Permission-Model-Bypass via fs.realpathSync, betrifft aber alle drei Linien.
Betroffene Versionen und was Admins jetzt tun sollten
Zu aktualisieren sind 26.x vor 26.12.1, 24.x vor 24.22.1 und 22.x vor 22.23.4. Auch End-of-Life-Zweige sind betroffen, für sie gibt es keinen Fix – dort bleibt nur der Wechsel auf eine unterstützte Linie. Wer ältere Major-Versionen noch in Container-Images oder Build-Umgebungen betreibt, sollte den tatsächlichen Runtime-Stand prüfen, statt sich auf das Basismodul der Distribution zu verlassen.
Die Releases ziehen Abhängigkeiten nach: c-ares und Undici in allen drei Linien, OpenSSL und SQLite in den LTS-Zweigen. In 22.23.4 stecken OpenSSL 3.5.9, SQLite 3.53.4, c-ares 1.34.9 und Undici 6.29.1, dazu Timezone 2026e und Root-Zertifikate auf NSS 3.131.1; 26.12.1 bringt c-ares 1.34.9, Undici 8.12.2 und NSS 3.131.1. Die systemische Auswirkung ist mit „Medio (64.23)“ beziffert, veröffentlicht am 21. Oktober 2026 um 15:23 Uhr.
Für den Betrieb bleibt es beim Standard: Update einspielen, Lockfiles und Container-Basisimages auf die neuen Versionen ziehen, EOL-Zweige migrieren. Wer Node.js in CI-Umgebungen oder Build-Images nutzt, sollte beachten, dass auch dort der Brotli-Decoder im Spiel ist – Build-Schritte, die fremde Archive verarbeiten, können betroffen sein. Und wer nach dem Update plötzlich TLS-Verbindungsabbrüche sieht, sollte zuerst an die eMudhra-Sperrliste denken, bevor er an der Firewall dreht.