
React2Shell-Sicherheitslücke (CVE-2025-55182 / CVE-2025-66478) Vollständiges Skript
Ein Proof-of-Concept-Tool zur Demonstration der kritischen React2Shell-Schwachstelle (CVE-2025-55182 / CVE-2025-66478) ausschließlich in autorisierten, lokalen Testumgebungen.
Diese Schwachstelle (CVSS 10.0) wird derzeit von hochentwickelten Bedrohungsakteuren aktiv ausgenutzt. Amazon Threat Intelligence berichtet, dass mehrere staatsnahe Gruppen mit Verbindungen zu China, darunter Earth Lamia und Jackpot Panda, innerhalb weniger Stunden nach der Offenlegung begannen, öffentliche Exploits zu bewaffnen. Die US-amerikanische Cybersecurity and Infrastructure Security Agency (CISA) hat sie in ihren Katalog bekannter ausgenutzter Schwachstellen (KEV) aufgenommen.
CVE-2025-55182 (React2Shell) ist eine kritische Remote-Codeausführungs-Schwachstelle (RCE) vor der Authentifizierung im „Flight“-Protokoll der React Server Components (RSC). Eine separate Kennung, CVE-2025-66478, wurde für Next.js vergeben, wurde aber inzwischen als Duplikat von CVE-2025-55182 abgelehnt, da beide dieselbe Ursache haben.
chmod +x pwn-nextjs.sh
./pwn-nextjs.sh [TARGET_URL] [COMMAND]
# Spezifische URL angreifen
./pwn-nextjs.sh https://vulnerable-app.example.com "whoami"
root
Die Schwachstelle hat ihren Ursprung in bestimmten React-Paketen und betrifft jedes Framework, das diese bündelt.
Nicht betroffen: Next.js 13.x, Next.js 14.x stabile Versionen, Pages-Router-Anwendungen und die Edge Runtime sind nicht betroffen.
Das RSC-Flight-Protokoll serialisiert Daten für die Client-Server-Kommunikation. Die Schwachstelle liegt in der Deserialisierungslogik auf dem Server, die unsicher Objekteigenschaften aus der eingehenden Nutzlast ohne ausreichende Validierung erweitert. Dies ermöglicht einem Angreifer, bösartige Schlüssel (wie __proto__ oder constructor) in die Anfrage einzuschleusen, was zu Prototypverschmutzung führt.
Sobald die Prototypkette verschmutzt ist, folgt der Server den vom Angreifer beeinflussten Ausführungspfaden. Dies kann verkettet werden, um beliebigen JavaScript-Code mit Serverberechtigungen auszuführen, was zu vollständiger Remote-Codeausführung (RCE) führt.
Sicherheitsforscher haben erfolgreiche Exploits beobachtet, die zu folgenden Aktivitäten führen:
.aws/credentials).Patchen ist obligatorisch und der einzige Weg, die Schwachstelle vollständig zu beseitigen. Es gibt keine Konfigurationseinstellung, um den anfälligen Codepfad zu deaktivieren.
# Für Next.js-Benutzer: Aktualisieren Sie auf die neueste gepatchte Version Ihrer Release-Linie.
# Beispiel: Wenn Sie Next.js 15.5.x verwenden:
npm install [email protected]
# Stellen Sie auch sicher, dass die React-Abhängigkeiten aktualisiert werden:
npm install react@latest react-dom@latest
Überprüfen Sie, ob Ihre package-lock.json- oder yarn.lock-Dateien die gepatchten react-server-dom-*-Paketversionen (19.0.1, 19.1.2 oder 19.2.1) widerspiegeln.
Während des Patching-Prozesses sollten Web Application Firewall (WAF)-Regeln bereitgestellt werden, um Exploit-Versuche zu blockieren:
AWSManagedRulesKnownBadInputsRuleSet (v1.24+) enthält Regeln für diese CVE.cve-canary-Regel ist verfügbar.Hinweis: WAF-Regeln sind eine vorübergehende, unvollständige Abschwächung. Sie ersetzen nicht die Notwendigkeit zu patchen.
Überprüfen Sie Protokolle auf diese Anzeichen von Exploit-Versuchen:
next-action- oder rsc-action-id-Headern. Anforderungstexte mit Mustern wie $@ oder \"status\":\"resolved_model\".whoami, id, uname), Lesezugriffe auf /etc/passwd oder Dateischreibvorgänge nach /tmp/ (z. B. pwned.txt) durch Node.js-Prozesse.Dieses Tool demonstriert eine Schwachstelle mit einem CVSS-Score von 10.0 (Maximale Schwere), die derzeit von staatlich unterstützten Akteuren aktiv ausgenutzt wird.
Denken Sie daran: Dieses Tool zeigt, warum Patchen dringend erforderlich ist. Nutzen Sie dieses Wissen, um die Sicherheit zu verbessern und Systeme zu verteidigen, nicht um sie zu kompromittieren. Stellen Sie sicher, dass alle Ihre Abhängigkeiten auf die oben aufgeführten gepatchten Versionen aktualisiert sind.
| Komponente | Betroffene Versionen | Gepatchte Versionen | Anmerkungen |
|---|
| React-Pakete ( react-server-dom-webpack, -parcel, -turbopack) | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1 | Quelle des zugrundeliegenden Fehlers. |
| Next.js (App Router) | 15.x, 16.x, 14.3.0-canary.77 und später | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 | Primär betroffenes Framework. |
| Andere Frameworks | React Router, Waku, RedwoodJS, Parcel (@parcel/rsc), Vite RSC Plugin | Aktualisieren Sie auf Versionen, die gepatchte React-Pakete verwenden (>19.0.1, 19.1.2, 19.2.1). | Verwundbar, wenn die betroffenen React-Pakete verwendet werden. |