Aikido

Axios CVE-2026-40175: ein kritischer Bug, der… nicht ausnutzbar ist

Verfasst von
Mackenzie Jackson

Es waren chaotische Wochen für Axios.

Zuerst geriet das Paket durch einen schwerwiegenden Supply-Chain-Angriff unter die Lupe. Nur wenige Tage später erschienen Schlagzeilen über eine „kritische 10/10-Schwachstelle“, die zu einer vollständigen Cloud-Kompromittierung führen könnte.

Wenn Sie die Berichterstattung gelesen haben, sind Ihnen wahrscheinlich Aussagen wie diese begegnet:

  • „Angreifer können AWS-Anmeldeinformationen stehlen“
  • „IMDSv2-Bypass“
  • „Kette zur Remotecodeausführung“

Das klingt schlimm.

Doch bei genauerer Betrachtung, wie sich diese Schwachstelle tatsächlich in realen Umgebungen verhält, ändert sich das Bild.

Nach der Analyse der Exploit-Kette und der Validierung des Verhaltens mit Raul Vega Del Valle, dem Forscher, der das Problem gemeldet hat, wird eines klar:

In Standard-Node.js-Umgebungen ist diese Schwachstelle nicht realistisch ausnutzbar. 

Der Grund ist einfach: Der Angriff hängt von der Injektion fehlerhafter Header ab, etwas, das Node.js auf Laufzeitebene bereits seit Jahren blockiert.

Das bedeutet nicht, dass die CVE falsch ist. Das zugrunde liegende Problem in Axios ist real, und das Patchen war die richtige Entscheidung. Doch die Vorstellung, dass dies zu einer einfachen Cloud-Kompromittierung in der Produktion führt, hält einer genauen Prüfung nicht stand. In der Praxis würde die Ausnutzung sehr obskure Bedingungen erfordern, wie zum Beispiel einen benutzerdefinierten Adapter, der die Header-Validierung von Node.js umgeht.

Was die CVE behauptet

CVE-2026-40175 wird als eine „Gadget-Chain”-Schwachstelle beschrieben:

  1. Prototype Pollution in einer Abhängigkeit
  2. Axios übernimmt manipulierte Werte
  3. CRLF-Header-Injektion
  4. Request Smuggling / SSRF
  5. AWS IMDSv2 Bypass
  6. Diebstahl von Zugangsdaten → Cloud-Kompromittierung

Theoretisch sieht es so aus:

// Prototype Pollution an anderer Stelle
Object.prototype['x-amz-target'] =
 "dummy\r\n\r\nPUT /latest/api/token HTTP/1.1\r\n" +
 "Host: 169.254.169.254\r\n" +
 "X-aws-ec2-metadata-token-ttl-seconds: 21600\r\n\r\nGET /ignore";

// Normaler Anwendungscode
axios.get("https://internal.service");

Axios führt Konfigurationen zusammen → übernimmt manipulierte Header → sendet eine bösartige Anfrage.

Das ist die Theorie.

Was tatsächlich in Node.js passiert

Das Problem ist: diese Kette bricht in realen Umgebungen.

Axios verwendet intern Nodes integrierten HTTP-Client:

http.request(...)

Und Node.js lehnt CRLF-Zeichen in Headern seit Jahren ab.

Wenn man versucht:

http.request({
 headers: {
   "x-test": "hello\r\nInjected: yes"
 }
});

Man erhält:

TypeError [ERR_INVALID_CHAR]: Ungültiges Zeichen im Header-Inhalt

Das geschieht bevor eine Anfrage gesendet wird.

Somit ist das Kern-Primitiv, von dem der Exploit abhängt — CRLF-Header-Injection — bereits auf Runtime-Ebene blockiert.

Dies wurde mit dem Forscher verifiziert

Um dies zu validieren, haben wir direkt mit dem Forscher gesprochen, der die Schwachstelle gemeldet hat, Raul Vega Del Valle.

Seine Schlussfolgerung stimmt mit unseren Beobachtungen überein:

  • Node.js blockiert CRLF-Header-Injection
  • Dasselbe Verhalten tritt in Bun und Deno auf.
  • Infolgedessen ist die Angriffskette in Standardumgebungen nicht realistisch erreichbar.

Mit Rauls Worten:

„In einer realen Anwendung… sollte es nicht passieren… Node, Bun oder Deno blockieren einfach das CRLF.“

Er bestätigte auch, dass:

„Es sollte in echten Produktionsanwendungen nicht möglich sein.“ 

Das ist eine entscheidende Nuance, die in den meisten Berichten fehlt.

Warum das CVE noch existiert

Wenn es also in der Praxis nicht ausnutzbar ist, warum ist dies ein CVE?

Weil das Problem auf Bibliotheksebene real ist.

Axios erlaubte zuvor unsichere Header-Werte. Selbst wenn die Runtime sie blockiert, hat die Bibliothek selbst diese Einschränkung nicht durchgesetzt.

Wie der Forscher erklärte:

„Es ist auf Bibliotheksebene real, wenn auch nicht auf Interpreterebene“, sagt Raul Vega Del Valle

Der Vollständigkeit halber sei auch ein Edge Case erwähnt. Axios ermöglicht es Entwickelnden, die Art und Weise, wie Anfragen gesendet werden, mithilfe eines benutzerdefinierten Adapters zu überschreiben. Anstatt sich auf Nodes integriertes http.request zu verlassen, könnte ein benutzerdefinierter Adapter HTTP-Anfragen manuell konstruieren und senden.

Theoretisch, wenn eine Anwendung:

  • einen benutzerdefinierten Axios-Adapter verwendet
  • Nodes HTTP-Client vollständig umgeht
  • und rohe Anfragen direkt in Sockets schreibt

dann könnte auch die Header-Validierung umgangen werden. In diesem Szenario könnte CRLF-Injection wieder möglich werden.

Dies erfordert jedoch eine nicht-standardmäßige Nutzung und ein bewusstes Abwählen integrierter Schutzmechanismen. Es trifft nicht auf typische Node.js-Anwendungen zu, die Axios standardmäßig verwenden.

Was ist mit dem IMDSv2-Bypass?

Dies ist der am meisten gehypte Teil der Geschichte und der am wenigsten in der Realität verankerte.

Ja, die Empfehlung zeigt eine Anfrage wie:

PUT /latest/api/token
Host: 169.254.169.254
X-aws-ec2-metadata-token-ttl-seconds: 21600

Doch um dorthin zu gelangen, benötigt ein Angreifer:

  • Prototype Pollution
  • CRLF-Injection
  • Request Smuggling
  • keine Laufzeitvalidierung

In Node.js wird diese Kette frühzeitig unterbrochen.

Selbst der Forscher stellte fest, dass ein IMDSv2-Bypass in diesem Setup nicht realistisch umsetzbar ist, obwohl er erwähnte, dass IMDSv1 eine weitere Untersuchung wert sein könnte.

Warum dies als kritisch eingestuft wurde

Die „10/10”-Bewertung resultiert aus dem Potenzial für eine Worst-Case-Angriffskette, nicht aus der typischen Ausnutzbarkeit.

Wenn man annimmt:

  • Prototype Pollution möglich ist
  • Header injiziert werden können
  • interne Dienste erreichbar sind
  • Metadaten-Endpunkte offengelegt sind

Dann ja, könnten die Auswirkungen schwerwiegend sein.

Das sind jedoch viele Annahmen, die sich überlagern.

Was Entwickelnde tatsächlich tun sollten

Dies ist keine Situation, in der man alles stehen und liegen lassen muss, aber auch nichts, was man ignorieren sollte.

Sie sollten:

  • Auf Axios ≥ 1.15.0 aktualisieren
  • Ihre Abhängigkeiten auf Risiken für Prototype Pollution prüfen
  • SSRF-Exposition und Netzwerkzugriff überprüfen
  • Sich nicht allein auf den Laufzeitschutz verlassen

Konzentrieren Sie sich auf die reale Angriffsfläche, nicht nur auf die CVE-Überschrift.

Teilen:

https://www.aikido.dev/blog/axios-cve-2026-40175-a-critical-bug-thats-not-exploitable

Nachrichten abonnieren

4.7/5
Falschpositive Ergebnisse leid?

Probieren Sie Aikido, wie 100.000 andere.
Jetzt starten
Erhalten Sie eine personalisierte Führung

Von über 100.000 Teams vertraut

Jetzt buchen
Scannen Sie Ihre App nach IDORs und realen Angriffspfaden

Von über 100.000 Teams vertraut

Scan starten
Erfahren Sie, wie KI-Penetrationstests Ihre App testen

Von über 100.000 Teams vertraut

Testen starten

Sicherheit jetzt implementieren

Sichern Sie Ihren Code, Ihre Cloud und Ihre Laufzeit in einem zentralen System.
Finden und beheben Sie Schwachstellen schnell und automatisch.

Keine Kreditkarte erforderlich | Scan-Ergebnisse in 32 Sek.