#Linux & Open Source · 5 Min. Lesezeit · Tim Rinkel

ACHTUNG, ENTWICKLER! Node.js hat eine Brotli-Lücke mit Codeausführung — Update JETZT einspielen

ACHTUNG, ENTWICKLER! Node.js hat eine Brotli-Lücke mit Codeausführung — Update JETZT einspielen

Eine Datei, die du gar nicht angefordert hast, kann reichen: Wenn deine Node-Anwendung Brotli-komprimierte Daten von außen auspackt, steckt im Dekoder ein Fehler, der laut Projekt Codeausführung aus der Ferne ermöglichen kann. Am 21. Oktober 2026 hat das Node.js-Team die Fixes veröffentlicht. Seit dem 22. Oktober ist ein öffentlicher Proof-of-Concept im Umlauf.

DAS IST PASSIERT: Ein Schreibfehler im Dekoder

Die Lücke trägt die Kennung CVE-2026-111497. Es handelt sich um einen Out-of-Bounds-Write im Brotli-Dekoder, den Node.js mitbringt. Auslöser sind manipulierte komprimierte Daten. Node.js stuft die Lücke als hoch ein; eine konkrete CVSS-Zahl nennt die Berichterstattung nicht.

Den Fix hat das Brotli-Projekt selbst geliefert. Die Änderung steckt dort seit Februar 2026 im Quellcode. Am 21. Oktober erschienen dazu die Brotli-Releases 1.2.1, 1.1.1 und 1.0.10. Wichtig: Auch andere Software, die Brotli mitliefert, kann damit ein Update brauchen.

WO DU ANGREIFBAR BIST

Gefährlich wird es dort, wo fremde Brotli-Daten in deinen Code laufen. Zwei typische Wege:

  • Eingehende Requests — etwa ein komprimierter Request-Body, den dein Server entpackt.
  • Antworten von anderen Servern — Node.js entpackt Brotli automatisch, wenn fetch() eine komprimierte Antwort erhält. Der Dekoder läuft außerdem direkt über node:zlib.

Betroffen sind die Linien 22.x, 24.x und 26.x. Die Fixes stecken in 22.23.4, 24.22.1 und 26.12.1.

WIE GEFÄHRLICH IST DER PoC WIRKLICH?

Hier lohnt der nüchterne Blick. Der Proof-of-Concept vom 22. Oktober erreichte Codeausführung nur auf einem absichtlich abgeschwächten Test-Build. Auf einem normalen Build meldete der Autor einen Absturz und ein begrenztes Auslesen von Prozessspeicher. Angriffe in freier Wildbahn sind laut Bericht bisher nicht bekannt.

Das ist kein Freibrief. Öffentliche PoCs sind der Startschuss für Nachbauten, und ein Absturz ist für einen Dienst schon ein Problem. Es gibt außerdem keinen Workaround — das Update ist die einzige Lösung. Vercel hat am 21. Oktober Firewall-Regeln gegen den Angriff in eingehenden Requests eingeführt. Diese schützen aber nicht vor Brotli-Antworten, die dein Server selbst von anderen Servern abruft.

NEUN WEITERE LÜCKEN IM GLEICHEN PAKET

Das Release schließt insgesamt zehn Schwachstellen. Drei weitere sind als hoch eingestuft:

  • CVE-2026-106069 — Umgehung der TLS-Hostnamenprüfung mit einer nicht-kanonischen IP-Schreibweise.
  • CVE-2026-105483 — dieselbe Art von Umgehung mit Ziffern in Vollbreite (24.x, 26.x). Der Fix-Commit nennt den Fehler selbst schwer ausnutzbar.
  • CVE-2026-105482 — dns.resolve schneidet Namen an einem Null-Byte ab.

Dazu kommen mittlere und niedrige Fehler, etwa bei Keep-Alive-Sockets, bei randomUUID() in Startup-Snapshots und im Permission Model. Mitgeliefert werden Updates für undici, c-ares, OpenSSL und SQLite.

EXTRA: eMudhra-Schlüssel jetzt blockiert

Die Releases sperren zusätzlich acht Zwischenzertifikat-Schlüssel der indischen CA eMudhra, die vor wenigen Tagen als erratbar aufgeflogen waren. Drei emSign-Wurzeln fliegen aus der mitgelieferten Liste. Go hatte denselben Block schon am 20. Oktober eingebaut. Eine Verbindung aus einer Sitzung, die vor dem Update begann, wird erst nach deren Ablauf neu geprüft.

SO GEHST DU VOR

  1. Version prüfen: node --version auf Servern und in Container-Images.
  2. Aktualisieren auf 22.23.4, 24.22.1 oder 26.12.1 — und Images neu bauen, nicht nur Hosts patchen.
  3. Node.js 20 und älter: Diese Linien sind am Ende ihrer Laufzeit und bekommen den Fix nicht. Zieh auf eine unterstützte Version um.
  4. Andere Brotli-Nutzer prüfen: Wenn Programme die Bibliothek separat mitbringen, brauchst du dort 1.2.1, 1.1.1 oder 1.0.10.

FAZIT: Kein Panikfall, aber ein Pflichttermin

Der PoC ist bisher zahm, aber die Kombination aus öffentlichem Code, fehlendem Workaround und einem Dekoder, der in vielen Web-Diensten automatisch läuft, spricht für schnelles Handeln. Wer selbst gehostete Node-Dienste im Homelab betreibt, sollte heute noch die Container-Images aktualisieren.

Häufige Fragen

Bin ich betroffen, wenn ich Node.js nur zum Entwickeln nutze?
Auf deinem Rechner ist das Risiko kleiner, weil dort selten fremde Brotli-Daten verarbeitet werden. Kritisch sind Server und Dienste, die Requests annehmen oder per fetch() Antworten von fremden Servern abrufen. Trotzdem lohnt das Update, denn es schließt zehn Lücken und bringt neue Sicherheitsabhängigkeiten mit. Wer Container-Images nutzt, muss sie neu bauen.
Gibt es einen Workaround, falls ich nicht sofort updaten kann?
Nein. Laut Advisory ist das Update die einzige Lösung. Vercel hat Firewall-Regeln eingeführt, die den Angriff in eingehenden Requests blockieren. Sie decken aber keine Brotli-Antworten ab, die dein Server selbst von anderen Servern abruft. Wer nicht patchen kann, sollte zumindest den Abruf von nicht vertrauenswürdigen Quellen einschränken.
Was ist mit Node.js 20 und älteren Versionen?
Diese Linien sind am Ende ihrer Laufzeit und erhalten laut Bericht keinen Fix. Auch der neue Block für die eMudhra-Schlüssel kommt dort nicht an. Der Umzug auf eine unterstützte Linie, also 22, 24 oder 26, ist damit keine Kür mehr, sondern die einzige Möglichkeit, die Lücke zu schließen.
Wird die Lücke schon ausgenutzt?
Bis zum 22. Oktober wurden keine Angriffe in freier Wildbahn gemeldet. Ein öffentlicher Proof-of-Concept existiert, er erreichte Codeausführung aber nur auf einem absichtlich abgeschwächten Test-Build. Auf einem Standard-Build löste er einen Absturz und ein begrenztes Auslesen von Prozessspeicher aus. Das kann sich schnell ändern.

Quellen

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert