Ein einziger Fehler in Googles Brotli-Komprimierungsbibliothek – geführt als CVE-2026-111497 und mit den Spitznamen Node2Shell, Brotli2Shell und HTTP2Shell versehen – erlaubt es einem Angreifer, den Speicher in jedem Programm zu beschädigen, das von Angreifern kontrollierte Brotli-Daten dekomprimiert, was möglicherweise zu Remote Code Execution führt. Da Brotli in Node.js, .NET, Python, Bun und einer langen Liste weiterer Software eingebettet ist, wurde aus einem einzigen Upstream-Fehler Ende Oktober 2026 ein Patch-Marathon quer durch den gesamten Stack. Wenn Ihr Dienst einen Content-Encoding: br-Anfragerumpf akzeptiert oder Brotli aus einer nicht vertrauenswürdigen Quelle dekodiert, müssen Sie patchen.
Dies ist nicht wieder ein einzelner Produkt-CVE. Die Brotli-Schwachstelle sitzt im gemeinsam genutzten C-Decoder, den Dutzende Laufzeitumgebungen bündeln, weshalb die interessante Frage nicht lautet „Ist Node.js betroffen?" (das ist es), sondern „Welche der Dinge, die ich betreibe, verlinken stillschweigend dieselbe Bibliothek?" Dieser Beitrag kartiert den vollständigen Wirkungsradius und gibt Ihnen in einer einzigen Tabelle die gepatchte Version für jedes Ökosystem.
Was ist CVE-2026-111497?
CVE-2026-111497 ist ein Out-of-Bounds-Write im Brotli-Decoder. Laut Node.js' Sicherheits-Release-Notizen hängte der Streaming-Decoder Eingabebytes fortlaufend in einen acht Byte großen internen Puffer an, ohne eine Grenzprüfung durchzuführen, sodass speziell präparierte Brotli-komprimierte Daten diesen Puffer überlaufen lassen und den Prozessspeicher beschädigen. Die praktischen Folgen sind ein Absturz, die Offenlegung von Prozessspeicher oder im schlimmsten Fall Remote Code Execution. Google bewertete die Lücke mit 9,2 nach CVSS v4.0, während Singapurs Cyber Security Agency einen CVSS-v3.1-Wert von 9,8 anführte – so oder so: kritisch. Die einzige Voraussetzung ist, dass eine verwundbare Anwendung Brotli-Daten dekomprimiert, die ein Angreifer beeinflussen kann, was ein sehr verbreitetes Muster ist: Brotli (br) ist eine standardmäßige HTTP-Content-Encoding, die von jedem gängigen Browser und CDN unterstützt wird.
Warum ein einziger Fehler so viele Produkte trifft
Brotli wurde als kleine, schnelle C-Bibliothek ausgeliefert, die Anwendungslaufzeiten direkt mitliefern, anstatt sie auf Betriebssystemebene als Abhängigkeit einzubinden. Dieses Design ist der Grund, warum der Fix von jedem Projekt neu veröffentlicht werden musste, statt einmal gepatcht zu werden. Der Sicherheitsanbieter Field Effect weist darauf hin, dass die Lücke mehrere Ökosysteme erreicht – und zwar gleichzeitig. Tenables Advisory listet einen Wirkungsradius auf, der Python, Bun, .NET, Javas brotli4j, den Envoy-Proxy und das Istio Service Mesh sowie Datenwerkzeuge wie FFmpeg, Apache Arrow und ClickHouse umfasst. Dies ist dasselbe Muster „ein Fehler, viele Stacks", das wir bei der HTTP/2-Bombe behandelt haben, die nginx, Apache und IIS zum Absturz brachte: eine gemeinsam genutzte Grundkomponente, der alle vertrauten, versagt überall gleichzeitig. Es erinnert auch an das Risiko auf Abhängigkeitsebene hinter der npm-Supply-Chain-Krise von 2026 – der Code, den Sie nie zu installieren beschlossen haben, ist trotzdem Ihre Angriffsfläche.
Patch-Matrix: gepatchte Versionen nach Ökosystem
Aktualisieren Sie auf die untenstehenden Versionen. Wenn Sie Container oder CI-Images betreiben, bauen Sie sie neu – ein gepatchtes Basis-Image ist der schnellste Weg, gebündelte Laufzeitumgebungen in einem Zug zu beheben.
| Ökosystem | Gepatchte Version(en) | Hinweise |
|---|---|---|
| Google Brotli (C-Bibliothek) | 1.0.10, 1.1.1, 1.2.1 | Der Upstream-Ursprung des Fehlers; alles andere bündelt dies neu |
| Node.js | 22.23.4, 24.22.1, 26.12.1 | Behoben über node:zlib im Release vom 21. Oktober; 20.x ist EOL und wird nicht gepatcht |
| .NET | 8.0.33, 9.0.22, 10.0.14 | Wenden Sie das Oktober-Laufzeit-Update an |
| Python (brotli / brotlicffi) | 1.2.1 / 1.2.1.0 | Verbreitet in HTTP-Clients, die br-Encoding aushandeln |
| Bun | 1.4.4 | Bündelt seinen eigenen Brotli-Decoder |
| brotli4j, Envoy, Istio, FFmpeg, Apache Arrow, ClickHouse, PHP für Windows | Gemäß Hersteller-Advisory | Alle verlinken denselben Decoder – prüfen Sie die Release-Notizen jedes Projekts |
Bin ich tatsächlich gefährdet?
Eine verwundbare Laufzeitumgebung zu installieren ist nicht dasselbe wie angreifbar zu sein. Der Expositionstest ist simpel: Dekomprimiert Ihr Code jemals Brotli-Daten, die ein Angreifer liefern kann? Stellen Sie sich diese drei Fragen, in dieser Reihenfolge:
- Akzeptieren Sie Brotli-Anfragerümpfe? Eine API oder ein Proxy, der
Content-Encoding: brbei eingehenden Anfragen berücksichtigt, ist der klassische exponierte Pfad – der Angreifer kontrolliert die komprimierten Bytes direkt. - Rufen Sie Remote-Inhalte ab und dekomprimieren sie? Serverseitige HTTP-Clients, Webhook-Consumer und Scraper, die dem Server erlauben,
br-kodierte Antworten zu senden, sind gefährdet, wenn die Gegenstelle nicht vertrauenswürdig ist. - Dekomprimieren Sie von Nutzern hochgeladene oder gespeicherte Dateien über einen Brotli-Pfad? Build-Pipelines, Dokumentenprozessoren und Datenwerkzeuge (Arrow, ClickHouse, FFmpeg), die
.br-Streams einlesen, zählen dazu.
Wenn die Antwort auf alle drei Fragen Nein lautet – wenn Sie beispielsweise nur ausgehende Antworten komprimieren und niemals nicht vertrauenswürdiges Brotli dekodieren – ist Ihr praktisches Risiko geringer, aber patchen Sie trotzdem. Rapid7s Analyse betont, dass Decoder-Pfade leicht indirekt über Bibliotheken erreichbar sind, von denen Sie nicht wussten, dass sie br aushandeln, sodass „Ich glaube nicht, dass ich Brotli verwende" keine sichere Annahme ist.
Zeitleiste: eine Lücke von acht Monaten
Das unangenehmste Detail ist die Verzögerung. Der Fix wurde am 27. Februar 2026 in das Upstream-Brotli-Repository eingecheckt, doch die gepatchten Bibliotheks-Releases wurden erst am 21. Oktober 2026 ausgeliefert – rund acht Monate, in denen der Patch in der öffentlichen Quelltext-Historie lag, während die veröffentlichten Binärdateien verwundbar blieben. Datadog Security Labs reproduzierte den Fehler als Node2Shell, und als die koordinierte Offenlegung am 30. Oktober erfolgte, war ein Proof-of-Concept bereits öffentlich und die Lücke wurde Berichten zufolge aktiv ausgenutzt. Ein öffentlicher Upstream-Commit ist eine Landkarte für Angreifer; das Zeitfenster zwischen „im Quelltext behoben" und „an die Nutzer ausgeliefert" ist genau der Punkt, an dem dieser Fall gefährlich wurde. Es ist dieselbe Lektion über Patch-Latenz, die hinter unserem Bericht über die schlimmste Patch-Woche des Jahres 2026 steht.
Was jetzt zu tun ist
Behandeln Sie dies als eine Aufgabe für denselben Tag bei jedem mit dem Internet verbundenen Dienst. Patchen Sie die Laufzeitumgebungen auf die Versionen in der Tabelle, bauen Sie Container-Images neu und deployen Sie sie, damit gebündelte Kopien aufgefrischt werden, und starten Sie die Workloads neu – ein Prozess im Arbeitsspeicher führt den alten, verwundbaren Decoder so lange aus, bis er neu gestartet wird. Überprüfen Sie nach dem Patchen die Zugriffs- und Anfrageprotokolle auf die oben genannten exponierten Pfade; Speicherbeschädigungs-Exploits hinterlassen oft Absturzschleifen oder abnormale Neustarts, bevor sie erfolgreich sind. Wenn Sie Ihre eigene Infrastruktur verwalten, deckt unsere Checkliste für die sichere erste Stunde eines VPS die Protokollierung und Update-Hygiene ab, die den nächsten solchen Vorfall zu einem Routine-Patch statt zu einer Feuerwehrübung machen.
Häufig gestellte Fragen
Wird CVE-2026-111497 ausgenutzt?
Ein Proof-of-Concept ist öffentlich verfügbar, und die Schwachstelle wird Berichten zufolge seit Ende Oktober 2026 aktiv ausgenutzt. In Kombination mit dem kritischen Schweregrad und der enormen Verbreitung rückt das die Lücke klar in den Bereich „jetzt patchen".
Welche Node.js-Versionen sind behoben?
Node.js 22.23.4, 24.22.1 und 26.12.1, veröffentlicht am 21. Oktober 2026. Node.js 20.x hat am 30. April 2026 das Ende seiner Lebensdauer erreicht und wird keinen Fix erhalten – steigen Sie um.
Ich komprimiere nur Antworten und dekomprimiere niemals Brotli. Bin ich sicher?
Ihr direktes Risiko ist geringer, weil der Fehler im Decoder liegt, nicht im Encoder. Aber Bibliotheken und HTTP-Clients können br aushandeln und dekodieren, ohne dass Sie es bemerken, also patchen Sie unabhängig davon, statt sich auf diese Annahme zu verlassen.
Behebt das Patchen des Betriebssystems das Problem?
Normalerweise nicht für sich allein. Die meiste betroffene Software bündelt ihre eigene Kopie von Brotli, sodass Sie jede Laufzeitumgebung (Node.js, .NET, Bun, Python-Pakete) aktualisieren und Container-Images neu bauen müssen – ein reines Betriebssystem-Paket-Update frischt eine mitgelieferte Bibliothek nicht auf.
Sources
- Node.js — Oktober 2026 Security Releases: offizielle gepatchte Versionen (22.23.4, 24.22.1, 26.12.1), der Out-of-Bounds-Write-Mechanismus und das Release mit 10 CVEs.
- Tenable — Brotli2Shell FAQ (CVE-2026-111497): CVSS-v4.0-Wert 9,2, betroffene Ökosysteme und gepatchte Brotli-/Python-/Bun-/.NET-Versionen.
- Datadog Security Labs — Node2Shell: technische Reproduktion und die Fix-Zeitleiste von Februar bis Oktober 2026.
- Rapid7 — Critical out-of-bounds write in the Node.js Brotli decoder: Expositionsanalyse und warum Decoder-Pfade leicht indirekt erreichbar sind.
- CSA Singapur — Active Exploitation of Critical Brotli Vulnerability: CVSS-v3.1-Wert 9,8, Status zu aktiver Ausnutzung und PoC, betroffene Produkte.
- Field Effect — Brotli vulnerability affects multiple software ecosystems: der ökosystemübergreifende Wirkungsradius.
Waqas Ahmed Waseer
Waqas Ahmed Waseer ist Entwickler und Automation-Builder mit über 8 Jahren Erfahrung im Aufbau von Produktivsystemen, die von mehr als 100.000 Menschen genutzt werden. Er baut individuelle Multi-Tenant-SaaS, KI-Automatisierung (n8n, LLM-Workflows, WhatsApp-Bots) und Hosting-Infrastruktur (WHM/cPanel, CloudLinux) — und ist der Macher von WaSphere, FlowMaticX und der Hosting-Marke WaseerHost. Über 100 Projekte für KMU, Agenturen und finanzierte Start-ups umgesetzt.
