Broccoli2Shell: Brotli-Lücke wird angegriffen, Node.js, Python und .NET jetzt aktualisieren

von Wolfscastle, Team

Die US-Behörde CISA führt die Brotli-Lücke CVE-2026-111497 seit dem 27. Oktober als aktiv ausgenutzt. Welche Versionen betroffen sind und was Sie tun sollten.

Die kritische Lücke im Brotli-Decoder wird inzwischen angegriffen. Die US-Cybersicherheitsbehörde CISA hat CVE-2026-111497 am 27. Oktober 2026 in ihren Katalog bekannter ausgenutzter Schwachstellen aufgenommen. US-Bundesbehörden müssen die Updates bis zum 10. November einspielen. Wer Node.js, Python oder .NET auf eigenen Servern betreibt, sollte nicht so lange warten. Stand dieses Beitrags ist der 28. Oktober 2026.

Der Fehler steckt in der Bibliothek, nicht in einer Anwendung

Brotli ist ein Kompressionsformat von Google, das im Web als Content-Encoding: br vorkommt. Die Lücke mit dem Spitznamen „Broccoli2Shell“, früher „node2shell“, sitzt im Decoder der Referenzbibliothek. Laut heise online kann ein Angreifer ohne Anmeldung mit präparierten Brotli-Daten Speicherfehler auslösen. Möglich sind ein Absturz, das Auslesen von Speicher oder das Einschleusen von Code. Die Bewertung liegt bei 9.2 nach CVSS 4.0, das Node.js-Projekt stuft die Lücke als „High“ ein.

Betroffen sind die Brotli-Versionen 1.0.3 bis 1.2.0. Google hat die Korrektur am 21. Oktober mit Brotli 1.2.1 veröffentlicht, dazu 1.1.1 und 1.0.10 für ältere Zweige. Weil viele Programme die Bibliothek mitbringen, reicht ein Blick auf die eigene Anwendung nicht. Entscheidend ist, welche Brotli-Version in Runtime, Paketen und Containern steckt.

Seit dem 26. Oktober gibt es Angriffsverkehr

Die Projektseite broccoli2shell.com zeichnet den Verlauf nach. Das Red Team von Imperva hat auf dem offiziellen Image von Node.js 24.22.0 Code ausgeführt. Das gelang über eine abgerufene Antwort und über einen Request-Body in Express. Den Exploit hat Imperva nicht veröffentlicht. Am 22. Oktober erschien ein öffentlicher Proof of Concept. Er führt auf Standard-Builds laut Projektseite nur zu Absturz oder begrenztem Speicherlesen.

Am 26. Oktober meldete die Sicherheitsfirma ELLIO Angriffsverkehr mit diesem Proof of Concept, und zwar von einer IP-Adresse, die schon bei Massenangriffen aufgefallen war. Einen Tag später folgte der Eintrag bei der CISA. Details zu Art und Umfang der Angriffe nennt die Behörde laut heise nicht. heise verweist dort auch auf einen Bericht von Rapid7: Schwere Lücken werden demnach im Schnitt etwa drei Tage nach ihrer Veröffentlichung angegriffen.

Diese Versionen schließen die Lücke

Für die verbreiteten Plattformen gibt es Updates. Die Angaben stammen von den jeweiligen Projekten und von der Broccoli2Shell-Seite:

  • Node.js: 22.23.4, 24.22.1 und 26.12.1. Für Node.js 20, 23 und 25 gibt es keinen Fix mehr, weil diese Linien ihr Supportende erreicht haben. Hier hilft nur der Wechsel auf 22, 24 oder 26.
  • Python: das Paket Brotli in Version 1.2.1 und brotlicffi in Version 1.2.1.0.
  • .NET: 8.0.33, 9.0.22 und 10.0.14, für .NET 11 der Release Candidate 3. Laut Microsoft ist die Brotli-Dekompression in ASP.NET Core und HttpClient standardmäßig aus. Das .NET Framework ist nicht betroffen.
  • PHP-Erweiterung brotli (kjdev): Version 0.21.1.
  • PHP unter Windows: Das PHP-Team hat am 26. Oktober neue Windows-Builds 8.5.12-1, 8.4.27-1, 8.3.36-1 und 8.2.35-1 mit Brotli 1.2.1 bereitgestellt. Erreichbar ist der Decoder dort über cURL mit automatischer Dekompression, die standardmäßig ausgeschaltet ist.

Bun, Envoy und das Nginx-Modul ngx_brotli führt die Projektseite als bereits korrigiert, nennt aber keine Versionsnummern. Apache und Nginx sind laut heise in der Standardkonfiguration nicht betroffen, weil sie dort kein Brotli dekodieren.

Ein Update ohne Neustart lässt den alten Code laufen

Die Projektseite empfiehlt, nach dem Update alle betroffenen Prozesse neu zu starten, Container neu zu bauen und auszurollen und die Lockfiles anzupassen. Sonst läuft weiter die verwundbare Version. Bei .NET betont Microsoft einen Sonderfall: Self-contained-Anwendungen bringen ihre eigene Runtime mit. Eine neue Runtime auf dem Server ersetzt sie nicht, die Anwendung muss neu gebaut werden. Welche Runtimes installiert sind, zeigt dotnet --list-runtimes.

Für Node.js gibt es laut Projektseite keinen offiziellen Workaround, das Update ist die einzige vollständige Lösung. Bei Python lassen sich Brotli und brotlicffi übergangsweise deinstallieren, auch wenn sie über Extras wie httpx[brotli] installiert wurden. Clients weichen dann auf gzip oder deflate aus.

Bis zum Update hilft ein Filter am Proxy nur halb

Für eingehende Anfragen schlägt die Projektseite vor, Bodys mit Content-Encoding: br schon am Proxy, Load Balancer oder an der Web Application Firewall abzulehnen. Das schützt Anwendungen, die Brotli-komprimierte Uploads oder API-Anfragen annehmen.

Für ausgehende Verbindungen gibt es diesen Schutz nicht. Ruft Ihre Anwendung selbst Daten von fremden Servern ab und entpackt Brotli-Antworten, ist sie laut Projektseite erst nach dem Update sicher. Genau diesen Weg hat Imperva für die Codeausführung genutzt.

Wir prüfen Ihre Server auf betroffene Versionen

Bei unseren Managed Servern spielen wir Sicherheitsupdates wie dieses ein und starten die betroffenen Dienste neu. Laufen bei Ihnen eigene Node.js-, Python- oder .NET-Anwendungen, gehört dazu auch der Blick in Container und Abhängigkeiten.

Wenn Sie nicht sicher sind, welche Brotli-Version in Ihren Anwendungen steckt, schreiben Sie uns.

Weitere Fachbeiträge

Erzählen Sie uns von Ihrem Projekt

Wir sind bereit, Ihre digitalen Herausforderungen anzunehmen - ob E-Commerce, Web-App oder komplexes Ökosystem.

Technischer Sparringspartner

Wolfscastle arbeitet vollständig remote, aber immer auf Augenhöhe und mit direkter Kommunikation - ohne Umwege und zwischengeschaltete Projektmanager.