Überspringen zum Hauptinhalt

CVE-2026-111497: Remotecodeausführung und Offenlegung von Speicherinhalten durch nativen Brotli-Decoder

Bulletin-ID: 2026-155-AWS
Geltungsbereich: AWS
Inhaltstyp: Wichtig (erfordert Aufmerksamkeit)
Veröffentlichungsdatum: 28.10.2026, 15:00 Uhr PDT
Zuletzt aktualisiert am: 30.10.2026, 14:00 Uhr PDT

Beschreibung:

AWS ist sich CVE-2026-111497 bewusst, ein Pufferüberlauf in der nativen Brotli-Dekomprimierungsbibliothek, der erstmals in den Sicherheitsversionen von Node.js vom Oktober 2026 behoben wurde. Das Dekodieren speziell gestalteter Brotli-komprimierter Eingaben könnte es Dritten ermöglichen, Code auszuführen oder den Prozessspeicher in einer betroffenen Anwendung zu lesen. Das Problem betrifft die Brotli-Dekodierung über Node.js hinaus, und Korrekturen anderer Anbieter sind noch nicht vollständig verfügbar.

Die Informationen zu den betroffenen AWS-Services finden Sie unten. Wir werden dieses Bulletin aktualisieren, sobald mehr Informationen verfügbar sind.

Aktueller Status der Schadensbegrenzung:

AWS Lambda

Der verwaltete AWS-Lambda-Service ist nicht betroffen. Die Lambda-Laufzeiten für .NET und Node.js sind von diesem Problem betroffen.

Lambda-Laufzeiten für Python, Ruby und OS-only provided.al2023 enthalten die Brotli-Bibliothek nicht. Wenn Sie die Brotli-Bibliothek in diesen Situationen in Ihre eigene Funktionsbereitstellung aufnehmen, empfehlen wir, die Bereitstellung mit einer gepatchten Version erneut durchzuführen.

  • Status nach Laufzeit:
    - Node.js 22, 24, 26 – Basis-Container-Images: Aktualisiert. Jetzt neu erstellen und erneut bereitstellen. – ZIP-Pakete, Phase 1 und Phase 2 abgeschlossen.
    – .NET 8, 9 (nur Container), 10 – Container-Basis-Images: Aktualisiert – ZIP-Pakete, Phase 1 und Phase 2 abgeschlossen.
  • Node.js:
    – Node.js 24: Aufgrund einer bekannten Regression in der Version Node.js 24.22.1 haben wir zunächst gezielte Updates auf die aktuelle stabile Version angewendet, anstatt auf die neueste Node.js-Version umzusteigen. Die Regression wurde nun in 24.22.2 behoben. Wir sind dabei, diese Version zu veröffentlichen. Phase 1 ist bereits abgeschlossen, Phase 2 wird voraussichtlich am 31.10.2026 abgeschlossen sein.
  • Beachten Sie, dass veraltete Runtimes, einschließlich Node.js 18 und 20, keine Sicherheitsupdates erhalten. Wir empfehlen Kunden, auf eine neuere Version zu aktualisieren.
  • Das Update anwenden:
    – Container-Images: Sobald das aktualisierte Basis-Image verfügbar ist, erstellen Sie Ihre Container-Image-Funktionen auf der Grundlage des neuesten Basis-Images neu und stellen Sie sie erneut bereit.
    – ZIP-Pakete: Verwaltete Laufzeit-Updates werden in zwei Phasen eingeführt:
         ○ Phase 1: Lambda wendet die aktualisierte Laufzeit an, wenn Sie eine Funktion erstellen oder aktualisieren (über die UpdateFunctionCode- oder UpdateFunctionConfiguration-API)
         ○ Phase 2: Lambda aktualisiert automatisch Funktionen im Modus „Auto Runtime Update“, die das Update noch nicht erhalten haben

Diese Phasen werden in Wellen in allen AWS-Regionen eingeführt. Wir beschleunigen unseren üblichen Veröffentlichungsprozess, sodass wir nicht vorhersagen können, wann die Bereitstellung in den einzelnen Regionen abgeschlossen sein wird.

Sobald Phase 1 abgeschlossen ist, können Sie die gepatchte Runtime-Version übernehmen, indem Sie Ihren Funktionscode oder Ihre Konfiguration aktualisieren. Ein Zero-Change-Update reicht nicht aus. Eine einfache Möglichkeit, eine Änderung auszulösen, besteht darin, eine Umgebungsvariable hinzuzufügen. Das folgende Bash-Skript verwendet die AWS-CLI, um die Umgebungsvariable TRIGGER_RUNTIME_UPDATE hinzuzufügen oder zu aktualisieren und dabei die vorhandenen Umgebungsvariablen beizubehalten.

1. Legen Sie Ihren Funktionsnamen
FUNCTION_NAME="my-function"
fest.
2. Lesen Sie die aktuellen Umgebungsvariablen in eine JSON-Zeichenfolge
CURRENT_VARS=$(aws lambda get-function-configuration \
--function-name "$FUNCTION_NAME" \
--query "Environment.Variables" \
--output json)

3. Fügen Sie die neue Variable ein
MERGED=$(echo "$CURRENT_VARS" \
| jq '
if . == null then {} else . end
| if .TRIGGER_RUNTIME_UPDATE then
.TRIGGER_RUNTIME_UPDATE = ((.TRIGGER_RUNTIME_UPDATE | tonumber) + 1 | tostring)
else
.TRIGGER_RUNTIME_UPDATE = "1"
end
')

# 4. Aktualisieren Sie die Funktionskonfiguration
aws lambda update-function-configuration \
--function-name "$FUNCTION_NAME" \
--environment "{\"Variables\": $MERGED}"
  • So überprüfen Sie, ob Ihre Funktion aktualisiert wurde: Die Version des Laufzeit-Patches wird in der Zeile INIT_START in Ihren Funktionsprotokollen gemeldet. Diese Zeile wird bei jedem Kaltstart der Ausführungsumgebung ausgegeben und steht normalerweise am Anfang jedes Protokollstreams. Suchen Sie für Node.js nach nodejs:22.mainline.v157 oder höher (Node.js 22) oder nodejs:24.mainline.v114 oder höher (Node.js 24). Die Eigenschaft process.version spiegelt nicht das Update für Node.js 24 wider. Suchen Sie für .NET nach dotnet:8.mainline.v165 oder höher (.NET 8) oder dotnet:10.mainline.v113 oder höher (.NET 10).


AWS Amplify

AWS Amplify Hosting Compute-Anwendungen (Server-Side Rendering), die auf Node.js 22 und Node.js 24 ausgeführt werden, erhalten das Sicherheitsupdate automatisch, sobald die zugrunde liegende verwaltete Laufzeit aktualisiert ist. Vonseiten des Kunden besteht kein Handlungsbedarf.

Wenn in Ihrer Laufzeitkonfiguration eine Node.js-Version vor 22 angegeben ist, empfehlen wir, auf eine unterstützte Node.js-Version (22 oder 24) zu migrieren, um diese und zukünftige Sicherheitsupdates zu erhalten.


AWS App Runner

Eine aktualisierte, von App Runner verwaltete Node.js-Laufzeit wurde am 26.10.2026 in allen AWS-Regionen bereitgestellt.

Services, die seit dem 26.10.2026 nicht mehr bereitgestellt wurden: Stellen Sie Ihren Service einmal erneut bereit. Bei der nächsten Bereitstellung wird die aktualisierte Laufzeit ohne Konfigurationsänderung übernommen.

Services, die an eine explizite ältere Laufzeitversion angeheftet sind: Aktualisieren Sie zuerst die Laufzeit-Versions-Pin und stellen Sie sie dann erneut bereit. Durch eine erneute Bereitstellung allein wird ein angehefteter Service nicht in die aktualisierte Laufzeit verschoben.


Amazon CloudWatch Synthetics

Node.js-Canaries: Die Canary-Laufzeiten von Node.js verwenden die von Lambda verwaltete Laufzeit und erhalten dieselben Phase-1- und Phase-2-Updates wie oben beschrieben. Für Canaries, die automatische Laufzeit-Updates erhalten, ist keine Aktion erforderlich (Ziel: 30. Oktober 2026).

Python-Selenium-Canaries: Die Python-Selenium-Canary-Laufzeit beinhaltet die Brotli-Bibliothek. Ein Update ist in Bearbeitung. Wir werden dieses Bulletin mit der gepatchten Laufzeit-Version und allen Kundenaktionen aktualisieren, sobald diese verfügbar sind.


AWS CodeBuild

  • Aktualisierte, von CodeBuild kuratierte Images sind in Bearbeitung. Zielerreichung: 30.10.2026. Zu den aktualisierten Images gehören Node.js 22.23.4, 24.22.1 und 26.12.1; Ubuntu libbrotli1 1.0.9-2ubuntu0.1 / 1.1.0-2ubuntu0.1; und Amazon Linux 2023 brotli 1.1.0-1.amzn2023.0.2.
  • Kuratierte Images mit dem neuesten Tag, bei dem „Immer das neueste Image verwenden“ ausgewählt ist, und AMI-Builds auf Abruf: Es sind keine Maßnahmen erforderlich. Ihr nächster Build verwendet das aktualisierte Image.
  • Kuratierte Images, die an eine bestimmte Version oder einen bestimmten Digest angeheftet sind: Aktualisieren Sie den Verweis auf das aktualisierte Image.
  • Benutzerdefinierte Images, die aus einem von CodeBuild kuratierten Basisimage erstellt wurden: Erstellen Sie Ihr Image anhand des aktualisierten Basis-Images neu.
  • Buildspecs, die Node.js 18 oder 20 auswählen: Aktualisierte Images enthalten nicht mehr Node.js 18 oder 20. Aktualisieren Sie Ihre Buildspec, um Node.js 22, 24 oder 26 zu verwenden.


AWS Elastic Beanstalk

  • Die Elastic Beanstalk Node.js Plattformversion 6.11.12, die Node.js 24.22.1 und 22.23.4 umfasst, wurde am 22. Oktober 2026 veröffentlicht.
  • Führen Sie zur Überprüfung in Ihrem Build node --version, dpkg-query -W libbrotli1 (Ubuntu) oder rpm -q brotli (Amazon Linux 2023) aus.
  • Umgebungen mit aktivierten verwalteten Plattformaktualisierungen: Ihre Umgebung wird während Ihres nächsten wöchentlichen Wartungsfensters auf die korrigierte Plattformversion aktualisiert. Um früher zu aktualisieren, wenden Sie das Update über die Registerkarte „Verwaltete Updates“ in der Elastic Beanstalk-Konsole an.
  • Alle anderen Umgebungen: Aktualisieren Sie Ihre Umgebung auf die Plattformversion 6.11.12 oder höher.
  • Umgebungen auf Node.js 18 oder 20: Migrieren Sie zu einem unterstützten Plattformzweig von Node.js.

Führen Sie zur Überprüfung node --version auf Ihren Umgebungs-Instances aus.


AWS Elemental MediaLive

  • AWS aktualisiert eine von AWS verwaltete MediaLive-Komponente, die die betroffene Bibliothek enthält. Vonseiten des Kunden besteht kein Handlungsbedarf


Von Kunden verwaltete Node.js-Umgebungen

Wenn Sie Ihre eigenen Node.js-Builds auf AWS ausführen und verwalten, beispielsweise auf Amazon-EC2-Instances oder in Ihren eigenen Containern auf Amazon ECS oder Amazon EKS, sind Sie für die Aktualisierung dieser Umgebungen verantwortlich. Führen Sie ein Upgrade auf Node.js 22.23.4, 24.22.1, 26.12.1 oder höher durch. Da sich dieses Problem auch auf andere Sprachen und Anwendungen erstreckt, die Brotli dekodieren, sollten Sie auch überprüfen, ob Ihre Bibliotheken und Anwendungen die Brotli-Dekodierung als Abhängigkeit enthalten.

Schadensbegrenzung mithilfe von AWS WAF

Wenn Sie nicht sofort aktualisieren können, können Sie AWS WAF verwenden, um eine benutzerdefinierte Regel bereitzustellen, die eingehende Anfragen blockiert, die die Brotli-Inhaltskodierung verwenden (der Header „Content-Encoding: br“). Beachten Sie vor der Bereitstellung Folgendes:

  • AWS WAF überprüft nur eingehende Anfragen. Diese Kontrolle gilt nicht für Brotli-Daten aus anderen Quellen, z. B. Antworten von Upstream-Services.
  • Durch das Blockieren von Brotli-kodierten Anfragen werden alle Brotli-kodierten Uploads in die Anwendung blockiert, einschließlich des normalen Datenverkehrs.
  • Die Regel ist ein Beispiel und entspricht möglicherweise nicht jeder Brotli-kodierten Anfrage. 
  • Empfohlene Bereitstellungsschritte:
    1. Stellen Sie die Regel mit der Aktion Count bereit.
    2. Überprüfen Sie die übereinstimmenden Anfragen in Amazon-CloudWatch-Metriken und in Stichprobenanfragen.
    3. Wenn Sie bestätigen, dass sich die Regel nicht auf den normalen Datenverkehr auswirkt, ändern Sie die Aktion in „Blockieren“. Ersetzen Sie dazu „Count“: {} with "Block": {}.
    4. Legen Sie die Regelpriorität so fest, dass sie zu Ihrer bestehenden Regelreihenfolge passt.

Beispiel für eine AWS-WAF-Regel:

{

  "Name": "Node2Shell_BROTLI",

  "Priority": 2,

  "Statement": {

    "RegexMatchStatement": {

      "RegexString": "^\\s*br\\s*$",

      "FieldToMatch": { "SingleHeader": { "Name": "content-encoding" } },

      "TextTransformations": [ { "Priority": 0, "Type": "LOWERCASE" } ]

    }

  },

  "Action": { "Count": {} },

  "RuleLabels": [ { "Name": "Node2Shell_Brotli" } ],

  "VisibilityConfig": {

    "SampledRequestsEnabled": true,

    "CloudWatchMetricsEnabled": true,

    "MetricName": "Node2Shell_BROTLI"

  }

}

 
 

Um zum Blockieren zu wechseln, ersetzen Sie "Count": {} with "Block": {}.

Aktualisierungen der von AWS WAF verwalteten Regeln werden über die SNS-Benachrichtigungen der von AWS WAF verwalteten Regelgruppe und das AWS WAF-Entwicklerhandbuch angekündigt.

Empfohlene Maßnahmen

  • Migrieren Sie Workloads auf ausgelaufenen Versionen von Node.js (einschließlich Node.js 18 und 20) auf eine unterstützte Version.
  • Für vom Kunden verwaltete Umgebungen führen Sie im Rahmen Ihres Patch-Management-Prozesses ein Upgrade auf eine korrigierte Version von Node.js durch.
  • Prüfen Sie, ob Ihr Code, Ihre Abhängigkeiten oder Ebenen eine eigene Brotli-Bibliothek enthalten, und aktualisieren Sie sie, sobald Korrekturen verfügbar sind. Wenn noch kein Patch für eine betroffene Bibliothek oder Anwendung verfügbar ist, deaktivieren Sie die Brotli-Dekodierung, bis einer veröffentlicht wird.

Referenzen:


Bei Fragen oder Bedenken zum Thema Sicherheit wenden Sie sich bitte per E-Mail an aws-security@amazon.com .