Kritische Brotli-Decoder-Lücke (CVSS 9.2) bedroht Node.js, Python und curl

Eine kritische Schwachstelle in Googles weitverbreiteter Komprimierungsbibliothek Brotli, erfasst als CVE-2026-111497, kann es Angreifern ermöglichen, Server und Clients, die mit Brotli komprimierten HTTP-Verkehr verarbeiten, zum Absturz zu bringen oder sogar Code auf ihnen auszuführen. Die Lücke wurde erstmals am 21. Oktober vom Node.js-Projekt offengelegt und erwies sich bis zum 23. Oktober als weit umfangreicher als zunächst angenommen; sie erhält einen CVSS-v4.0-Wert von 9,2 und gilt damit als kritisch.
Brotli ist das Komprimierungsformat hinter der Content-Encoding-Variante br, die im gesamten modernen Web eingesetzt wird, um HTTP-Antworten und -Anfragen zu verkleinern. Da die Bibliothek in eine enorme Bandbreite von Software eingebettet oder statisch eingebunden ist, bleibt ein Fehler im Decoder nicht auf ein einzelnes Projekt beschränkt. Das Sicherheitsunternehmen Aikido, das die Ausbreitung des Problems über verschiedene Sprach-Ökosysteme hinweg verfolgte, stellte fest, dass die Lücke die ursprüngliche Brotli-C-Bibliothek (Versionen 1.0.3 bis 1.2.0), die PyPI-Pakete brotli und brotlicffi, die in Node.js gebündelte Kopie sowie nachgelagerte Nutzer wie die Python-HTTP-Clients urllib3, requests, httpx, aiohttp und Scrapy betrifft, ebenso Bun, Envoy, Istio sowie Builds von curl und libcurl, die Brotli statisch einbinden. Laut Aikidos Analyse sind Apache und Nginx standardmäßig nicht betroffen.
Der Fehler ist ein Out-of-Bounds-Schreibfehler im Speicher (CWE-787) im Decoder, der durch einen fehlerhaft formatierten Brotli-Datenstrom ausgelöst wird. Da die Dekomprimierung automatisch erfolgt, sobald ein Client oder Server Unterstützung für die br-Kodierung signalisiert, funktioniert der Angriff in beide Richtungen: Ein bösartiger Client kann einen Server angreifen, der Anfragekörper dekodiert, und ein bösartiger Server kann einen Client angreifen, der komprimierte Antworten akzeptiert — ganz ohne Authentifizierung. Laut Aikido reichen die bestätigten Auswirkungen von Speicherlecks und Abstürzen bis hin zur Ausführung beliebigen Codes, wobei bis zum 22. Oktober keine aktive Ausnutzung der Node.js-Variante beobachtet wurde.
Bemerkenswert ist, dass der zugrunde liegende Speichersicherheitsfehler Berichten zufolge bereits im Februar von Ingenieuren bei OpenAI im Brotli-Quellcode gefunden und stillschweigend behoben wurde, ohne dass er damals als Sicherheitsproblem eingestuft wurde — das verwundbare Zeitfenster bestand somit rund acht Monate, bevor diese Offenlegung alle Teile zusammenfügte.
Für einige, aber nicht alle betroffenen Projekte stehen bereits Patches bereit: Node.js 22.23.4, 24.22.1 und 26.12.1; Brotli 1.2.1 (mit Backports auf 1.0.10 und 1.1.1 in älteren Zweigen); brotlicffi 1.2.1.0; Bun 1.4.4; Envoy 1.40.0, 1.39.3, 1.38.6 und 1.37.8; sowie Istio 1.29.9, 1.30.6 und 1.31.2. Aikido warnt, dass Standard-Schwachstellenscanner wie pip-audit, Dependabot und Safety die betroffenen PyPI-Paketversionen bis zum 23. Oktober noch nicht erkannten — Teams, die sich ausschließlich auf automatisches Dependency-Scanning verlassen, erhalten also möglicherweise keine Warnung. Da allein das Brotli-Paket auf PyPI monatlich rund 82,8 Millionen Downloads verzeichnet, dürfte die praktische Reichweite ungepatchter Installationen erheblich sein.
Teams, die nicht sofort patchen können, rät Aikido, Brotli oder brotlicffi dort zu deinstallieren, wo sie optionale Abhängigkeiten sind, und Server so zu konfigurieren, dass sie Anfragen mit Content-Encoding: br ablehnen. Das Unternehmen warnt, dass das bloße Entfernen von br aus dem ausgehenden Accept-Encoding-Header allein nicht ausreicht, da ein weiterhin verwundbarer Decoder von jeder Partei ausgelöst werden kann, die sich entscheidet, eine Brotli-komprimierte Payload zu senden — unabhängig davon, was angefordert wurde.
Ursprünglich berichtet von Aikido Security. Lesen Sie den Originalartikel für weitere Details.
Originalquelle ansehen