CISA nahm CVE-2026-111497 am 27. Oktober 2026 nach Hinweisen auf aktive Ausnutzung in den Katalog für bekannte ausgenutzte Schwachstellen (Known Exploited Vulnerabilities, KEV) auf. Für Betreiber von Node.js-Anwendungen ist das ein Grund, die betroffenen Laufzeiten zügig zu aktualisieren. Der Node.js-Decoder kann bei manipulierten Brotli-Daten abstürzen, Prozessspeicher offenlegen oder möglicherweise die Ausführung von Schadcode ermöglichen.
Wann die Schwachstelle eine Anwendung erreicht
CVE-2026-111497 ist ein Schreibzugriff außerhalb des vorgesehenen Speicherbereichs im Brotli-Decoder von Node.js. Node.js zufolge behandelt der Decoder eine fehlerhafte Blockumschaltung fälschlich als Aufforderung, weitere Eingabedaten anzufordern. Beim Streaming-Dekodieren werden dadurch weitere Bytes an einen internen Puffer mit acht Byte angehängt.
Angreiferkontrollierte Brotli-Daten müssen den verwundbaren Decoder erreichen, damit dieser Fehler relevant wird. Ein direkter Aufruf von node:zlib ist dafür nicht zwingend nötig: Node.js kann Brotli-Antworten auch über das eingebaute fetch() dekomprimieren. Express 5 mit body-parser 2 kann Brotli-Anfragekörper verarbeiten, wenn die Middleware entsprechend für die Dekomprimierung konfiguriert ist. Der bloße Empfang einer komprimierten Anfrage löst dagegen keine Dekomprimierung aus.
Diese Node.js-Versionen beheben den Fehler
Das Node.js-Projekt nennt für die unterstützten Zweige diese korrigierten Versionen:
| Node.js-Zweig | Korrigierte Version |
| 22.x | 22.23.4 |
| 24.x | 24.22.1 |
| 26.x | 26.12.1 |
Node.js bewertet die Schwachstelle als schwerwiegend. Versionen am Ende ihres Lebenszyklus stuft das Projekt bei einem Sicherheitsrelease ebenfalls als betroffen ein. Wer solche Zweige betreibt, sollte auf einen unterstützten Zweig mit dem jeweiligen Fixbuild wechseln.
Was Impervas Test zeigte
Imperva berichtete über Codeausführung in Tests mit dem offiziellen Node.js-24.22.0-Image für Linux auf arm64. Die Tests umfassten Brotli-Antworten über fetch() sowie konfigurierte Anfrageverarbeitung mit Express 5 und body-parser. In diesem Versuchsaufbau waren mehrere Anläufe nötig; dieselben Eingaben wies Node.js 24.22.1 zurück.
Laufzeiten aktualisieren und erneut ausrollen
Prüfe direkte Dekomprimierungsaufrufe ebenso wie indirekte Pfade über fetch(), Middleware sowie Proxy- und Anwendungskonfigurationen. Berücksichtige außerdem Container und eigenständige Anwendungen, die ihre eigene Node.js-Laufzeit mitbringen. Aktualisiere die Laufzeit oder Bibliothek, baue solche Images und Anwendungspakete neu, spiele sie erneut aus, starte die Dienste neu und kontrolliere anschließend die tatsächlich laufende Version.
Eingehende Brotli-Anfragen am Proxy abzuweisen oder die Dekomprimierung von Anfragekörpern zu deaktivieren, kann den jeweiligen Eingabepfad begrenzen. Es schützt jedoch keinen Client, der weiterhin eine manipulierte Brotli-Antwort dekomprimiert. Die dauerhafte Abhilfe ist deshalb ein korrigierter Laufzeit- oder Bibliotheksbuild.