TL;DR
Node.js hat am Mittwoch ein Sicherheitsupdate für eine Schwachstelle bei der Dekomprimierung von Brotli-Daten veröffentlicht, einen Fehler, der bereits als „Node2Shell“ (CVE-2026-111497) bezeichnet wird. Wenn es einem Angreifer gelingt, eine bösartige Nutzlast an Ihre Anwendung zu übermitteln, kann die Schwachstelle den Prozess zum Absturz bringen, Teile des Speichers offenlegen oder es dem Angreifer möglicherweise ermöglichen, eigenen Code auszuführen.
Wer ist betroffen: Jeder, der Node.js oder Bun einsetzt und dessen Anwendung Brotli-Daten entpackt, die ein Angreifer kontrollieren könnte.
Die Lösung: Führen Sie ein Upgrade auf die gepatchte Node.js-Version für Ihre Release-Reihe durch.
- 22.x -> 22.23.4
- 24.x -> 24.22.1
- 26.x -> 26.12.1
Für Bun: Führen Sie ein Upgrade auf Version 1.4.4 oder höher durch.
So hilft „ Aikido “: „ Aikido “ erkennt die Sicherheitslücke und zeigt Ihnen an, in welchen Repositories und in welchen „ container “-Images noch eine anfällige Version verwendet wird.
Wer ist von CVE-2026-111497 betroffen?
Wenn Sie Node.js nutzen, sollten Sie davon ausgehen, dass Sie betroffen sind, bis Sie Ihre Version überprüft haben. Jede unterstützte Release-Reihe wies vor dem Update vom 21. Oktober diese Schwachstelle auf, und auch Bun war bis zur Version 1.4.4 davon betroffen.
Wie groß Ihr Risiko ist, hängt davon ab, woher Ihre App ihre komprimierten Daten bezieht. Brotli ist ein Komprimierungsformat, das von Servern und Clients verwendet wird, um den Webdatenverkehr zu reduzieren. Die Sicherheitslücke kann ausgelöst werden, wenn Node.js Brotli-Daten dekomprimiert, die von einem Angreifer kontrolliert werden. Dies kann auf mindestens drei Arten geschehen:
- Server, die Anfragen entgegennehmen: Express 5 und body-parser 2.x entpackt die mit
Content-Encoding: br, und jeder Client kann einen solchen senden. Ein reiner Node.js-HTTP-Server dekodiert eingehende Brotli-Inhalte nicht von sich aus. - Apps, die andere Server aufrufen:
fetch()dekomprimiert Brotli-Antworten automatisch, sodass ein Server, den ein Angreifer kontrolliert oder kompromittiert hat, über dessen Antwort auf Ihre App zugreifen kann. Webhooks und andere Funktionen, die vom Nutzer angegebene URLs aufrufen, sind die typischen Angriffsziele. - Code, der
Knoten:zlibdirekt: alle nicht vertrauenswürdigen Eingaben, die an die Brotli-Funktionen übergeben werden. Viele weitere Server-Frameworks, auf denen Anwendungen basieren, übernehmen dies für Sie.
| Freigabezeile | Status | Korrigierte Version |
|---|---|---|
| Node.js 26.x | Aktuell | 26.12.1 |
| Node.js 24.x | Langfristige Unterstützung | 24.22.1 |
| Node.js 22.x | Langfristige Unterstützung | 22.23.4 |
| Node.js 25.x, 23.x, 20.x und frühere Versionen | Lebensende | Keine Lösung |
So beheben Sie CVE-2026-111497
Die Lösung besteht in einem Node.js-Upgrade und umfasst vier Schritte:
- Überprüfen Sie Ihre Version mit
node --versionauf Laptops, CI-Runner, Servern und in Containern. - Führen Sie ein Upgrade auf 22.23.4, 24.22.1 oder 26.12.1 oder auf eine neuere Patch-Version derselben Versionreihe durch.
- Erstellen Sie Ihre „ container “-Images neu und stellen Sie sie erneut bereit. Ein Image, das an einen früheren Tag angeheftet ist, wie beispielsweise
Knoten:22.23.3-alpine, bleibt anfällig, bis Sie es auf einer gepatchten Version neu kompilieren. - Planen Sie eine Umstellung weg von Node.js 25.x, 23.x, 20.x und früheren Versionen. Diese Versionen sind nicht mehr unterstützt und erhalten diesen Fix nicht.
Verwaltete Plattformen, die eine eigene Node.js-Laufzeitumgebung bündeln, können hinter der Upstream-Version zurückbleiben. Überprüfen Sie daher, welche Version Ihr Anbieter verwendet. Falls Sie derzeit kein Upgrade durchführen können, lesen Sie die unten aufgeführten Übergangslösungen. Bun-Nutzer sollten auf Bun 1.4.4 oder neuer aktualisieren, da diese Version den Fehlerbehebungs-Patch enthält. Das Bun-Team hat das Problem unter der Issue-Nummer 46352 in „oven-sh/bun“ dokumentiert.
Wenn Ihr Node.js aus einem Linux-Distributionspaket wie Debian, Ubuntu, Fedora, RHEL oder Alpine stammt, wird möglicherweise die systemeigene Brotli-Bibliothek anstelle der in Node.js enthaltenen Version verwendet. In diesem Fall erfolgt die Behebung des Problems über das Brotli-Paket Ihrer Distribution. Überprüfen Sie daher sowohl die Sicherheitshinweise Ihrer Distribution als auch die Versionsnummer.
Wie „ Aikido “ bei CVE-2026-111497 hilft
Aikido Erkennt diese Sicherheitslücke und kennzeichnet die betroffenen Node.js-Versionen in Ihren Repositorys und „container “-Images. Ihr Dashboard zeigt an, welche Dienste noch eine anfällige Laufzeitumgebung verwenden, sodass Sie zunächst diejenigen aktualisieren können, die externe Server aufrufen oder komprimierte Request-Bodies akzeptieren. Nach der Aktualisierung bestätigt eine erneute Überprüfung unter Aikido , dass der Befund nicht mehr vorliegt.
Technische Details zu Node2Shell
Was ist Node2Shell (CVE-2026-111497)?
CVE-2026-111497 ist ein Schreibzugriff außerhalb des zulässigen Bereichs im Brotli-Decoder, der durch fehlerhaft formatierte komprimierte Eingabedaten ausgelöst wird. Einfach ausgedrückt: Der Decoder kann dazu gebracht werden, Daten über das Ende eines Speicherpuffers hinaus zu schreiben, was ein klassischer Weg zu Abstürzen und zur Ausführung von Code ist. Node.js stuft die Schwere dieser Schwachstelle als hoch ein und beschreibt die Auswirkungen als Remote-Code-Ausführung.
Brotli ist die Komprimierungsbibliothek von Google, und Node.js enthält eine eigene Version davon. Die Schwachstelle liegt in diesem mitgelieferten Code, sodass eine Behebung eine Aktualisierung der Node.js-Laufzeitumgebung selbst erfordert. Node.js führt den Decoder jedes Mal aus, wenn es Brotli-Daten dekomprimiert, entweder direkt über die Knoten:zlib Modul oder automatisch, wenn fetch() erhält eine Antwort, die mit Brotli-Komprimierung gesendet wurde.
Die Korrektur ist ein Upstream-Patch aus dem Brotli-Projekt, den Node.js gezielt übernommen hat (Brotli-Commit 0ed4268a (ab Februar). Dadurch erkennt der Decoder ungültige Eingaben und stoppt, bevor er über den Puffer hinausschreibt. Die gleiche Korrektur wurde in Brotli 1.2.1, 1.1.1 und 1.0.10 ausgeliefert, sodass möglicherweise auch andere Software, die Brotli enthält, aktualisiert werden muss.
Wie schwerwiegend ist die Sicherheitslücke CVE-2026-111497, und wird sie bereits ausgenutzt?
Node.js stuft die Schwachstelle als „hoch“ ein – eine Stufe unter „kritisch“ – und die öffentliche Forschung hat schnell reagiert. Ein erster Proof-of-Concept, der am 22. Oktober veröffentlicht wurde, ermöglichte die Codeausführung lediglich gegen einen absichtlich geschwächten Test-Build. Am selben Tag berichteten Sicherheitsforscher von einer Codeausführung auf dem offiziellen, unveränderten Node.js-Image 24.22.0 unter Linux arm64, obwohl ihr Exploit nicht bei jedem Versuch funktionierte und Node.js 24.22.1 dieselbe Eingabe zurückweist. Laut The Hacker News waren bis zum 22. Oktober keine Ausnutzungen in freier Wildbahn gemeldet worden.
Behandeln Sie das auf jeden Fall als dringlich. Bei dem Fehler handelt es sich um eine Schwachstelle in der Speichersicherheit einer Laufzeitkomponente, die nicht vertrauenswürdige Netzwerkeingaben verarbeitet; es gibt öffentliche Proof-of-Concept-Beispiele, und die Behebung erfolgt durch eine routinemäßige Versionserhöhung. Dienste, die externe Server aufrufen oder komprimierte Request-Bodies akzeptieren, sollten vorrangig behandelt werden.
So überprüfen Sie, ob Ihre App angreifbar ist
- Listen Sie alle Node.js-Versionen auf, die Sie verwenden:
node --versionauf Hosts und CI-Runner sowiedocker run --rm <image> node --versionfür jedes „ container “-Image. Bei einer Paketbestandsaufnahme kann eine Laufzeitumgebung übersehen werden, die in einem Image enthalten ist. - Finden Sie heraus, wo die Brotli-Daten einfließen. Führen Sie Folgendes aus:
npm ls express body-parserum Express 5 und Body-Parser 2.x zu erkennen und Ihren Code (sowie die Abhängigkeiten) nachbrotliEntpackenundcreateBrotliDecompressvonKnoten:zlib. - Ausgehende Nachrichten auflisten
fetch()Aufrufe, die an Server gesendet werden, die nicht Ihrer Kontrolle unterliegen, einschließlich Webhook-Übermittlungen und von Benutzern angegebener URLs. - Aktualisieren Sie zuerst die Dienste, die den Schritten 2 oder 3 entsprechen, und anschließend die übrigen.
Ein Dockerfile, das an Knoten:24.22.0 bleibt anfällig, egal wie oft man es neu kompiliert. Aktualisieren Sie den Pin auf 24.22.1 oder höher.
Was tun, wenn Sie noch kein Upgrade durchführen können?
Der Node.js-Sicherheitshinweis enthält keine Abhilfemaßnahme für die Brotli-Sicherheitslücke. Diese vorübergehenden Maßnahmen verringern das Risiko, während Sie das Upgrade vorbereiten:
- Brotli-verschlüsselte Anfragen ablehnen: Eingehende Anfragen verwerfen, bei denen
Content-Encoding: brauf Ihrem Reverse-Proxy, Load Balancer oder Ihrer Anwendungs-Middleware. Aikido nutzte diese Übergangslösung für interne Dienste, die nicht sofort aktualisiert werden konnten. - Nutzen Sie Edge-Regeln, sofern Ihre Plattform diese anbietet: Vercel hat am 21. Oktober Firewall-Regeln hinzugefügt, die den Angriff bei eingehenden Anfragen blockieren.
Keine der beiden Übergangslösungen deckt Brotli-Antworten ab, die Ihre Anwendung von anderen Servern abruft. Nur ein Upgrade zur Laufzeit behebt die Schwachstelle; betrachten Sie die Übergangslösungen daher als Überbrückung bis dahin.
Zeitleiste von Node2Shell
- Februar 2026: Der Fix wird erstmals in den Brotli-Quellcode übernommen.
- 21. Oktober 2026: Node.js veröffentlicht die Versionen 22.23.4, 24.22.1 und 26.12.1. Brotli liefert denselben Fix in den Versionen 1.2.1, 1.1.1 und 1.0.10 aus, und Vercel fügt Firewall-Regeln für eingehende Anfragen hinzu.
- 22. Oktober 2026: Ein öffentlicher Proof-of-Concept wird veröffentlicht, und Forscher berichten von einer Codeausführung auf einer unveränderten Node.js-Version 24.22.0.
FAQ
Was ist Node2Shell?
„Node2Shell“ ist der Name, der im Internet für CVE-2026-111497 kursiert – die Schwachstelle im Brotli-Decoder von Node.js, die laut dem Node.js-Projekt die Ausführung von Code aus der Ferne ermöglichen kann.
Welche Node.js-Versionen beheben die Sicherheitslücke CVE-2026-111497?
Node.js 22.23.4, 24.22.1 und 26.12.1 sowie alle neueren Patch-Versionen dieser Versionsreihen. Node.js 25.x, 23.x, 20.x und frühere Versionen sind nicht mehr unterstützt und erhalten keine Fehlerbehebungen mehr.
Wird die Sicherheitslücke CVE-2026-111497 ausgenutzt?
Bis zum 22. Oktober 2026 lagen keine Berichte über eine Ausnutzung in freier Wildbahn vor. Forscher haben unter Laborbedingungen die Ausführung von Code auf einer unveränderten Node.js-Version 24.22.0 gemeldet, wobei der Exploit nicht bei jedem Versuch funktionierte.
Verwendet „body-parser“ oder express.json() Wird mein Server dadurch angreifbar?
Ja, wenn Ihr Parser Brotli-Anfragetexte dekomprimiert. Express 5 und Body-Parser 2.x tun dies, sodass ein Client eine manipulierte Content-Encoding: br Anfrage. Die Lösung besteht darin, Node.js zu aktualisieren.
Gibt es eine Umgehungslösung?
In der Node.js-Sicherheitsempfehlung werden keine aufgeführt. Das Zurückweisen von Brotli-kodierten Anfragen am Edge verringert zwar das eingehende Risiko, schützt jedoch nicht vor Brotli-Antworten, die Ihre Anwendung abruft.
Ist Bun betroffen?
Ja, Versionen vor 1.4.4 sind betroffen. Bun 1.4.4 enthält die Korrektur, und das Bun-Team hat dies im Issue 46352 unter „oven-sh/bun“ dokumentiert.