Node2Shell: Node.js-Schwachstelle ermöglicht Codeausführung über Brotli-Daten

Veröffentlicht von Judy Meier am

Dieser Artikel wurde bereits 21x gelesen...

Eine Schwachstelle im integrierten Brotli-Dekoder von Node.js kann unter bestimmten Bedingungen zur Ausführung von Schadcode führen. Imperva beschreibt unter dem Namen „Node2Shell“, wie manipulierte komprimierte Daten den Fehler auslösen können – etwa beim Verarbeiten einer HTTP-Antwort oder beim Dekomprimieren eines eingehenden Request-Bodys.

Schwachstelle sitzt im Node.js-Runtime

Betroffen ist laut der Analyse CVE-2026-111497, eine Speicherfehler-Schwachstelle im mit Node.js ausgelieferten Brotli-Dekoder. Impervas Red Team konnte in Tests mit dem offiziellen Node.js-24.22.0-Linux-arm64-Image demonstrieren, dass über speziell präparierte Brotli-Daten Code im Prozess ausgeführt werden kann. Die Tests umfassen unter anderem Node.js’ eingebautes fetch() sowie konfigurierte Parser in Express 5 und body-parser. Nicht jede Umgebung und nicht jeder Versuch war betroffen; die Ergebnisse beziehen sich auf die konkret getesteten Builds und Konfigurationen.

Welche Datenpfade geprüft werden sollten

Brotli kann auf mehreren Wegen in eine Anwendung gelangen: Ein Dienst kann eine komprimierte Antwort eines anderen Servers verarbeiten, oder Middleware kann einen eingehenden HTTP-Request dekomprimieren. Express 5 und body-parser unterstützen solche Brotli-Request-Bodys, sofern die passenden Parser konfiguriert sind. Die Ursache liegt laut Imperva jedoch im Node.js-Dekoder selbst, nicht in diesen Middleware-Paketen. Ein HTTP-Server dekodiert eingehende Brotli-Daten nicht automatisch nur dadurch, dass er sie empfängt.

Gepatchte Versionen verfügbar

Das Node.js-Projekt hat Korrekturen für die unterstützten Versionszweige veröffentlicht: 22.23.4, 24.22.1 und 26.12.1. Betreiber sollten betroffene Installationen auf diese oder neuere korrigierte Versionen aktualisieren. Dabei sind auch Container-Images und andere Artefakte zu berücksichtigen, die eine eigene Node.js-Binärdatei mitbringen. Bei nicht mehr unterstützten Zweigen empfiehlt sich der Wechsel auf eine unterstützte Version.

Für die Bestandsaufnahme sollten Kommunen und IT-Dienstleister prüfen, welche Anwendungen nicht vertrauenswürdige Brotli-Daten verarbeiten und welche Node.js-Version tatsächlich in den laufenden Hosts und Images steckt. Eine Paketliste allein kann veraltete, in Container eingebettete Laufzeitumgebungen übersehen. Eine vorübergehende Einschränkung entsprechender Datenpfade kann beim Rollout helfen, ersetzt das Runtime-Update aber nicht.

Fehlerprotokolle sind kein sicherer Exploit-Nachweis

Unerwartete Prozessabbrüche oder Dekodierungsfehler können bei der Priorisierung einer Untersuchung helfen, sind für sich genommen jedoch kein verlässlicher Beleg für einen Angriff. Sie sollten zusammen mit der eingesetzten Node.js-Version, Anwendungsprotokollen und der Herkunft der komprimierten Daten bewertet werden. Imperva berichtet außerdem über ergänzende WAF-Regeln; als dauerhafte Behebung gilt laut Analyse dennoch das Aktualisieren der Laufzeitumgebung.


0 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert