Werden Sie gerade angegriffen? Hilfe bei der Vorfallsbehandlung

info@angelforce.eu
Schwachstellen

Node.js-Sicherheitsrelease Oktober 2026: Brotli-RCE und TLS-Umgehungen

Node.js 22.23.4, 24.22.1 und 26.12.1 beheben zehn Lücken, darunter einen Brotli-Fehler mit Codeausführung. Wer betroffen ist und wie Sie aktualisieren und prüfen.

Auch verfügbar auf:EnglishTürkçeFrançaisEspañolItalianoPolskiNederlandsEesti

Illustration: Node.js-Sicherheitsrelease Oktober 2026: Brotli-RCE und TLS-Umgehungen

Am 21. Oktober 2026 hat das Node.js-Projekt die Versionen 22.23.4, 24.22.1 und 26.12.1 veröffentlicht. Sie beheben zehn Schwachstellen, vier davon mit hohem Schweregrad. Die gravierendste, CVE-2026-111497, ist ein Schreibzugriff außerhalb der Puffergrenzen im Brotli-Decoder von Node: Fehlerhaft komprimierte Daten können den Speicher beschädigen, und das Hosting-Unternehmen Vercel berichtet, dass Forscher damit Prozessspeicher auslesen und Befehle mit den Rechten des Node.js-Prozesses ausführen konnten. Zwei weitere Schwachstellen mit hohem Schweregrad lassen ein TLS-Zertifikat die Hostnamenprüfung bestehen, obwohl es sie nicht bestehen dürfte. Node.js 20 und 25 haben das Ende ihres Lebenszyklus erreicht und erhalten keinen Fix.

Welche Versionen behoben sind

Release-ZweigBehoben inStatus
26.x26.12.1aktuell
24.x (LTS)24.22.1unterstützt
22.x (LTS)22.23.4unterstützt
25.xkein FixEnde des Lebenszyklus, wechseln Sie auf 26 oder 24
20.xkein FixEnde des Lebenszyklus seit dem 30. April 2026, wechseln Sie auf 22 oder 24

Um welche zehn Schwachstellen es geht

CVESchweregradProblemZweige
CVE-2026-111497HochSchreibzugriff außerhalb der Puffergrenzen im Brotli-Decoder, kann zur Codeausführung führen26, 24, 22
CVE-2026-105483HochDie TLS-Hostnamenprüfung besteht, wenn die IP-Adresse mit Ziffern in Vollbreite geschrieben ist26, 24
CVE-2026-106069HochDie TLS-Hostnamenprüfung besteht, wenn der Host nach lockeren Regeln zu einer IP-Adresse aufgelöst wird26, 24, 22
CVE-2026-105482Hochdns.resolve schneidet Namen an einem NUL-Zeichen ab26, 24, 22
CVE-2026-105481MittelEin Keep-alive-Socket kann eine Antwort akzeptieren, die geschrieben wurde, bevor die Anfrage gesendet war26, 24, 22
CVE-2026-106072MittelEin DNS-Name in einem Zertifikat kann bei nicht kanonischen IPv4-Hosts einen IP-Endpunkt authentifizieren26, 24, 22
CVE-2026-106074MittelrandomUUID() und randomInt() wiederholen in Startup-Snapshots und Single-Executable-Apps dieselben Werte26, 24, 22
CVE-2026-106073NiedrigUmgehung des Permission Model mit fs.realpathSync26, 24, 22
CVE-2026-106070NiedrigZipFile gibt nach einer fehlgeschlagenen Header-Prüfung vom Angreifer kontrollierte Bytes zurück26
CVE-2026-106071NiedrigDas Permission Model gewährt über Platzhalter zu weitreichenden Dateizugriff26

Die Releases aktualisieren außerdem mitgelieferte Komponenten: c-ares, Undici, die Liste vertrauenswürdiger CAs (die kompromittierte Zwischen-CA von eMudhra wird entfernt), OpenSSL in 24 und 22 sowie SQLite in 22.

Wer von der Brotli-Schwachstelle betroffen ist

Node.js dekodiert Brotli nicht von sich aus. Betroffen sind Sie, wenn Ihr Code oder eine von ihm genutzte Bibliothek Brotli-Daten dekomprimiert, die jemand anderes kontrolliert. Das kommt häufiger vor, als es klingt:

  • Das eingebaute fetch() dekodiert Antworten mit Content-Encoding: br automatisch. Ein Dienst, der von Nutzern gewählte URLs, Webhooks oder APIs von Drittanbietern abruft, kann eine bösartige Antwort erhalten.
  • axios, got und node-fetch dekodieren komprimierte Antworten standardmäßig ebenfalls.
  • Express 5 (body-parser 2) dekodiert Brotli-Request-Bodys standardmäßig, sodass eine API die Daten direkt von einem Angreifer empfangen kann.
  • Jeder Aufruf von zlib.brotliDecompress, zlib.createBrotliDecompress oder DecompressionStream auf Uploads oder Daten von Dritten.

Patchen Sie zuerst dort, wo diese Fälle auf das Internet treffen: öffentliche APIs, die komprimierte Bodys annehmen, Dienste, die von Nutzern angegebene URLs abrufen, und alles, was hochgeladene Dateien entpackt.

Die TLS-Schwachstellen betreffen vor allem den Fall, dass ein Angreifer von einer CA, der Ihr Client vertraut, ein Zertifikat mit einem IP-förmigen DNS-Namen erhalten kann, die DNS-Schwachstelle den Fall, dass Ihr Code externe Eingaben an dns.resolve übergibt. Laut dem Fix-Commit sind die TLS-Probleme nicht leicht auszunutzen, doch dasselbe Update schließt sie.

Schritt 1: jede Node.js-Laufzeit finden

Listen Sie unter Linux jede node-Binärdatei mit ihrer Version auf:

sudo find / -xdev -type f -name node -perm -u+x 2>/dev/null | while read -r n; do echo "$n: $("$n" --version 2>/dev/null)"; done

Prüfen Sie, welche Laufzeit die laufenden Prozesse verwenden:

for p in $(pgrep -x node); do echo "$p $(sudo readlink -f /proc/$p/exe)"; done

Prüfen Sie in Docker jeden laufenden Container:

for c in $(docker ps --format '{{.Names}}'); do echo "$c: $(docker exec "$c" node --version 2>/dev/null)"; done

Kontrollieren Sie außerdem Versionsmanager (nvm, fnm, Volta, asdf), CI-Runner, Build-Images, Electron-Apps und Serverless-Funktionen, bei denen die Laufzeitversion in der Projektkonfiguration festgelegt ist.

Schritt 2: aktualisieren

Ubuntu und Debian mit den NodeSource-Paketen:

sudo apt update && sudo apt install --only-upgrade nodejs && node --version

Mit nvm:

nvm install 24.22.1 && nvm alias default 24.22.1

Container: Stellen Sie das Basis-Image auf eine feste Version um, zum Beispiel node:24.22.1-alpine oder node:22.23.4-bookworm-slim, bauen Sie neu und deployen Sie erneut. Ein Update des Hosts ändert nichts an dem, was im Container läuft.

Serverless- und Hosting-Plattformen: Auf Vercel patcht Vercel Projekte mit 22.x und 24.x selbst und hat Firewall-Regeln gegen den eingehenden Angriff ergänzt; Projekte, die noch auf 20.x laufen, müssen auf 22.x oder 24.x wechseln und erneut deployen. Prüfen Sie bei anderen Plattformen die Mitteilung des Anbieters und deployen Sie erneut, sobald die gepatchte Laufzeit verfügbar ist.

Distributionspakete wie das eigene nodejs-Paket von Ubuntu hinken oft hinterher. Zeigt node --version nicht 22.23.4, 24.22.1 oder 26.12.1 an (oder einen Distributions-Build, der diese CVEs nennt), verwenden Sie die offiziellen Releases.

Schritt 3: neu starten und prüfen

Ein laufender Prozess behält die alte Laufzeit, bis er neu gestartet wird. Nach einem Paketupdate unter Linux listet dieser Befehl node-Prozesse auf, die noch die ersetzte Binärdatei ausführen:

sudo ls -l /proc/*/exe 2>/dev/null | grep -i 'node.*(deleted)'

Starten Sie diese Dienste neu (zum Beispiel mit systemctl restart, pm2 reload all oder einem neuen Deployment) und führen Sie die Befehle aus Schritt 1 erneut aus.

Wenn Sie heute nicht aktualisieren können

Nichts davon ersetzt das Update, aber es senkt das Risiko für einige Tage:

  • Weisen Sie Brotli-Request-Bodys ab, bevor sie die Anwendung erreichen, zum Beispiel in NGINX mit if ($http_content_encoding ~* br) { return 415; } oder in einer Middleware, die vor den Body-Parsern läuft.
  • Schalten Sie die automatische Dekompression für Anfragen an nicht vertrauenswürdige Server ab: decompress: false in axios und got, compress: false in node-fetch oder request() von undici, das nicht dekomprimiert. Das eingebaute fetch() lässt sich nicht abschalten.
  • Führen Sie Abrufe von nutzerseitig angegebenen URLs in einem separaten Prozess mit möglichst wenigen Rechten aus.
  • Weisen Sie Namen, die ein NUL-Zeichen enthalten, ab, bevor Sie externe Eingaben an dns.resolve übergeben.

Wenn Sie nicht sicher sind, welche Ihrer Dienste nicht vertrauenswürdige Daten dekodieren, oder Hilfe beim Aktualisieren eines Produktivsystems ohne Ausfallzeit brauchen, unterstützen Sie unsere Teams für sichere Software und Managed Security.

So können wir helfen

Sichere Software

Wir verankern Sicherheit in Software ab dem ersten Commit und entwickeln eigene Sicherheitstools.

Schreiben Sie uns
AngelForce-Team

Geschrieben vom AngelForce-Team: Sicherheitsberater mit CEH-, LPT-Master- und CISA-Zertifizierung, die Systeme von Organisationen in ganz Europa testen, überwachen und schützen.

Mit KI-Unterstützung auf Grundlage der unten aufgeführten öffentlichen Quellen verfasst und vor der Veröffentlichung vom AngelForce-Team geprüft.

Quellen

  1. nodejs.org/en/blog/vulnerability/october-2026-security-releases
  2. vercel.com/kb/bulletin/node-js-security-advisory
  3. atlasum.net/blog/cve-2026-111497-nodejs-brotli-decoder
  4. lilting.ch/en/articles/nodejs-tls-dns-brotli-security-release
  5. wardio.net/guides/nodejs-brotli-cve-2026-111497/

Artikel zum Thema Schwachstellen

Sagen Sie uns, was Sie schützen müssen

Beschreiben Sie Ihre Umgebung und was Sie erreichen möchten. Wir antworten per E-Mail.

Schreiben Sie uns
info@angelforce.eu

AngelForce OÜ · Tallinn, Estland