Schwachstelle im Brotli-Decoder zieht Korrekturen bei Node.js, Envoy und weiterer Software nach sich

Schwachstelle im Brotli-Decoder zieht Korrekturen bei Node.js, Envoy und weiterer Software nach sich

Füge CyberWorldOpsals bevorzugte Quelle bei Google hinzu
Schwachstelle im Brotli-Decoder zieht Korrekturen bei Node.js, Envoy und weiterer Software nach sich
Schwachstellen

Illustration mit KI erzeugt

Eine Speicherbeschädigung im Brotli-Decoder von Google hat Updates für Laufzeitumgebungen, Proxys und Python-Pakete ausgelöst. Forscher haben die Ausführung von Code auf einem ungepatchten Build von Node.js demonstriert.

Die Schwachstelle wird als CVE-2026-111497 geführt. Sie wird erreichbar, sobald Software von Angreifern kontrollierte Brotli-Daten dekomprimiert. Ein präparierter Datenstrom kann einen Out-of-Bounds-Schreibzugriff auslösen, der möglicherweise Speicher offenlegt, die Anwendung zum Absturz bringt oder beliebige Codeausführung ermöglicht. Es wurden keine Angriffe in freier Wildbahn gemeldet.

Laut The Hacker News begann die Offenlegung am 21. Oktober 2026, als Google und Node.js Korrekturen veröffentlichten. Andere Projekte haben mit Aktualisierungen ihrer eigenen Decoder-Kopien nachgezogen.

Sowohl eingehende Anfragen als auch abgerufene Antworten können Anwendungen gefährden

Brotli komprimiert Webseiten und anderen Datenverkehr. Die Schwachstelle liegt laut der Bewertung von Red Hat zu CVE-2026-111497 im C-Decoder, genauer in der Behandlung des Block-Typ-Wechsels in c/dec/decode.c. Für eine Ausnutzung ist ein fehlerhafter Datenstrom erforderlich; gewöhnliche, korrekt aufgebaute Encoder-Ausgaben lösen den verwundbaren Pfad nicht aus.

Betroffen sind in Node.js und Bun unter anderem eingebaute fetch()-Aufrufe, die Antworten mit Content-Encoding: br empfangen. Auch eingehende Uploads können über die Verarbeitung von Request-Bodies, etwa in Express 5 und body-parser 2, an den Decoder gelangen. Ein einfacher HTTP-Server in Node.js dekomprimiert Request-Bodies nicht automatisch.

Python-Anwendungen können allein dadurch gefährdet sein, dass das Paket Brotli oder brotlicffi installiert ist. HTTP-Clients wie requests, urllib3, httpx und aiohttp dekodieren Brotli-Antworten dann automatisch. Die Anwendung muss keines der beiden Kompressionspakete direkt importieren.

Envoy und Istio setzen voraus, dass die Brotli-Dekomprimierung aktiviert ist. Bereitstellungen, in denen sie deaktiviert ist, sind diesem Decoder-Pfad nicht ausgesetzt.

Das Red Team von Imperva demonstrierte in seiner Forschung, die es Node2Shell nennt, die Ausführung von Code durch Angreifer auf einem unveränderten Node.js-24.22.0-Build unter Linux auf ARM64. Die bösartigen Daten wurden sowohl über eine abgerufene Antwort als auch über einen Express-Request-Body übermittelt. Der Exploit benötigte mehrere Versuche, wurde nicht veröffentlicht und nicht auf anderen Builds getestet. Diese Demonstration belegt nicht, dass Codeausführung gegen jedes betroffene Produkt funktioniert.

Red Hat zufolge existiert kein öffentlicher, zuverlässiger Proof of Concept für Remote Code Execution. Das Unternehmen stuft das Problem als „Important“ mit einem CVSS-3.1-Wert von 8,1 ein. Als Gründe nennt es die Anforderungen an die Ausnutzung und die Plattformhärtung, die eine zuverlässige Codeausführung erschweren, ohne andere Auswirkungen auszuschließen. Envoy stuft die Schwachstelle mit 9,2 unter CVSS 4.0 als „Critical“ ein, während Node.js sie als „High“ klassifiziert.

Korrigierte Versionen hängen von Produkt und Bereitstellung ab

Die gemeldeten Korrekturen für Googles Brotli-C-Bibliothek sind 1.0.10, 1.1.1 und 1.2.1. Anwendungen, die die Bibliothek mitliefern, benötigen eigene Updates. Die Installation einer korrigierten Systembibliothek ersetzt einen mitgelieferten Decoder nicht zwingend.

Für andere betroffene Software gelten laut Meldung folgende korrigierte Versionen:

  • Node.js: 22.23.4, 24.22.1 und 26.12.1, jeweils für die entsprechenden Release-Linien 22.x, 24.x und 26.x. Laut Bericht sind außerdem die End-of-Life-Version Node.js 20.x und ältere Versionen betroffen.
  • Bun: 1.4.4; Versionen 1.4.3 und älter sind betroffen.
  • Istio: 1.31.2, 1.30.6 und 1.29.9. Sie beheben die betroffenen Bereiche 1.31.0–1.31.1, 1.30.0–1.30.5 und 1.29.0–1.29.8, sofern die Brotli-Dekomprimierung aktiviert ist.
  • Python Brotli: 1.2.1; Versionen 1.2.0 und älter sind betroffen.
  • Python brotlicffi: 1.2.1.0; Versionen 1.2.0.x und älter sind betroffen.

Der Envoy-Sicherheitshinweis vom 23. Oktober nennt betroffene Versionen v1.39.2, v1.38.5, v1.37.7 und v1.36.11 auf allen Plattformen. Korrekturen sind in v1.40.0, v1.39.3, v1.38.6, v1.37.8 und v1.36.12 enthalten. Der Hinweis beschränkt die Auswirkungen auf Installationen, in denen der Brotli-Dekomprimierer konfiguriert ist. Er besagt, dass ein entfernter, nicht authentifizierter Angreifer den Decoder-Zustand beschädigen, Speicher offenlegen, einen Denial of Service auslösen oder möglicherweise Code ausführen könnte.

Gefährdung durch cdxgen umfasst Repository-Scans und den Servermodus

Der cdxgen-Sicherheitshinweis vom 22. Oktober betrifft eigenständige Release-Binaries und Container-Images, die verwundbare Laufzeitumgebungen enthalten. Betroffen sind bei @cdxgen/cdxgen die Versionen 13.4.0 und älter, bei @cyclonedx/cdxgen die Versionen 12.8.8 und älter. Korrigierte Versionen sind entsprechend 13.5.0 und 12.8.9.

Der Geltungsbereich umfasst alle eigenständigen Executable-Familien, sowohl Slim- als auch Full-Varianten, auf allen Plattformen. Installationen über npm, pnpm oder npx verwenden stattdessen die Node.js-Laufzeitumgebung des Hosts und benötigen einen gepatchten Host.

Bei Standardeinstellungen kann das Scannen eines nicht vertrauenswürdigen Repositorys die Schwachstelle auslösen, wenn dessen Podfile.lock auf eine externe :git-Quelle verweist. cdxgen ruft die Podspec von diesem Host ab und dekomprimiert eine Brotli-Antwort, obwohl es keine solche angefordert hat. Auch im sicheren Modus ist jeder HTTPS-Host zulässig. Weitere Pfade betreffen vom Projekt bereitgestellte npm-, Deno- oder Dart-Registries mit FETCH_LICENSE sowie OCI-Registry-Abfragen mit --bom-audit.

Im --server-Modus dekomprimiert der Endpunkt /sbom Brotli-Request-Bodies, bevor Validierung oder Authentifizierung stattfinden.

Beide korrigierten cdxgen-Releases bündeln Node.js 24.22.1. Release 12.8.8 sollte das Sicherheitsupdate enthalten, doch seine eigenständigen Binaries enthielten weiterhin Node.js 24.18.0, und seine Container-Images wurden nicht veröffentlicht. Der Sicherheitshinweis verweist Nutzer daher auf 12.8.9 oder neuer. Aktualisierte Builds verschieben außerdem cdxgen-secure auf das passende Release-Image, verwenden für cdxgen-ppc64 das offizielle Node.js 24.22.1 und für cdxgen-bun Bun 1.4.4.

Schutzmaßnahmen müssen Daten vor der Dekomprimierung abfangen

Wenn sich Updates nicht sofort einspielen lassen, zielen die dokumentierten Maßnahmen darauf ab, dass nicht vertrauenswürdige Brotli-Daten den Decoder nicht erreichen. Dazu gehören das Ablehnen eingehender Content-Encoding: br-Anfragen vor der Dekomprimierung, das Deaktivieren der automatischen Brotli-Dekodierung von Antworten, wo unterstützt, oder das Entfernen der Python-Pakete Brotli und brotlicffi, damit Clients auf gzip und deflate zurückfallen.

Das bloße Entfernen von br aus Accept-Encoding reicht nicht aus, da ein Server trotzdem Brotli-komprimierte Inhalte zurückgeben kann. Auch Firewall-Schutz hat Grenzen. Vercel erklärte, seine Regeln vom Tag der Offenlegung hätten Antworten nicht abgedeckt, die Funktionen von anderen Servern abrufen. Laut Bericht ist kein Workaround für Node.js veröffentlicht worden. Ein Update der Laufzeitumgebung ist daher die vorgeschriebene Lösung.

Für cdxgen empfehlen die Maintainer zusätzlich, Ziele mit CDXGEN_ALLOWED_HOSTS einzuschränken, COCOA_FULL_SCAN=false zu setzen, um das Herunterladen entfernter Podspecs zu überspringen, und den Servermodus für nicht vertrauenswürdige Clients unzugänglich zu halten. Eine weitere dokumentierte Option ist ein gepatchter Host mit Node.js samt npm-Paket.

Nach dem Update müssen Dienste neu gestartet und Container-Images neu gebaut werden, damit der Decoder in laufenden Prozessen ersetzt wird. Scanner für Python-Abhängigkeiten könnten hinterherhinken: Laut Bericht fehlten im GitHub-Advisory Einträge zu betroffenen Paketen, während PYSEC-2026-4322 und PYSEC-2026-4323 am 23. Oktober hinzugefügt wurden. Installierte Versionen sollten daher manuell geprüft werden.

Die Korrektur selbst ist älter als die Offenlegung. OpenAI, dessen Codex-Security-Team die Schwachstelle gemeldet hat, erklärte, die zugrunde liegende Änderung sei am 27. Februar in den Quellcode von Brotli gelangt, ohne als Sicherheitskorrektur erkannt worden zu sein. Bis zum 21. Oktober war sie in keinem Brotli-Release enthalten.

Auch interessant

Quellen

Dieser Artikel ist eine eigenständige Aufbereitung auf Basis der folgenden Quellen.

Zurück zur Startseite

Aktuelle Cybersecurity-News

Alle Cybersecurity-News →