
Proof-of-concept Exploit für CVE-2025-55182 (React2Shell), eine kritische Pre-Auth-RCE in React Server Components. Zeigt unsichere Deserialisierung im Flight-Protokoll für autorisierte Sicherheitstests und Schulungen.
Ein Proof-of-Concept-Tool zur Demonstration der kritischen React2Shell-Sicherheitslücke (CVE-2025-55182 / CVE-2025-66478) in ausschließlich autorisierten, lokalen Testumgebungen.
Diese Sicherheitslücke (CVSS 10.0) wird derzeit von hochentwickelten Bedrohungsakteuren aktiv ausgenutzt. Amazon Threat Intelligence berichtet, dass mehrere China-nahe staatlich geförderte Gruppen, darunter Earth Lamia und Jackpot Panda, innerhalb von Stunden nach der Offenlegung begannen, öffentliche Exploits zu bewaffnen. Die US-amerikanische Cybersecurity and Infrastructure Security Agency (CISA) hat sie in ihren Katalog der Bekannten Ausgenutzten Sicherheitslücken (KEV) aufgenommen.
CVE-2025-55182 (React2Shell) ist eine kritische, vor der Authentifizierung ausnutzbare Remote-Code-Ausführung (RCE)-Sicherheitslücke im „Flight“-Protokoll der React Server Components (RSC). Eine separate Kennung, CVE-2025-66478, wurde für Next.js vergeben, aber inzwischen als Duplikat von CVE-2025-55182 abgelehnt, da beide die gleiche Ursache haben.
chmod +x pwn-nextjs.sh
./pwn-nextjs.sh [TARGET_URL] [COMMAND]
# Target specific URL
./pwn-nextjs.sh https://vulnerable-app.example.com "whoami"
root
Die Sicherheitslücke 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 Sicherheitslücke liegt in der Deserialisierungslogik auf dem Server, die Objekteigenschaften aus der eingehenden Nutzlast ohne ausreichende Validierung unsicher erweitert. Dies ermöglicht einem Angreifer, schädliche Schlüssel (wie __proto__ oder constructor) in die Anfrage einzuschleusen, was zu Prototyp-Verschmutzung führt.
Sobald die Prototyp-Kette verschmutzt ist, folgt der Server vom Angreifer beeinflussten Ausführungspfaden. Dies kann verkettet werden, um beliebigen JavaScript-Code mit Serverberechtigungen auszuführen, was zu einer vollständigen Remote-Code-Ausführung (RCE) führt.
Sicherheitsforscher haben erfolgreiche Exploits beobachtet, die zu Folgendem führen:
.aws/credentials).Patchen ist obligatorisch und der einzige Weg, die Sicherheitslücke vollständig zu beseitigen. Es gibt keine Konfigurationseinstellung, um den anfälligen Codepfad zu deaktivieren.
# For Next.js users, upgrade to the latest patched version in your release line.
# Example: If you are on Next.js 15.5.x:
npm install [email protected]
# Also ensure React dependencies are updated:
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 Patchens setzen Sie Web Application Firewall (WAF)-Regeln ein, 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 Abhilfemaßnahme. Sie ersetzen nicht die Notwendigkeit zu patchen.
Überprüfen Sie die Protokolle auf diese Anzeichen von Exploit-Versuchen:
next-action- oder rsc-action-id-Headern. Anfragekörper, die Muster wie $@ oder "status":"resolved_model" enthalten.whoami, id, uname), Lesezugriffe auf /etc/passwd oder Dateischreibvorgänge nach /tmp/ (z. B. pwned.txt) durch Node.js-Prozesse.Dieses Tool demonstriert eine Sicherheitslücke mit einem CVSS-Score von 10.0 (maximaler Schweregrad), die derzeit unter aktiver, staatlich geförderter Ausnutzung steht.
Denken Sie daran: Dieses Tool zeigt, warum Patchen dringend ist. Nutzen Sie dieses Wissen, um die Sicherheit zu verbessern und Systeme zu verteidigen, nicht um sie zu gefährden. 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 vorgelagerten 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). | Anfällig bei Verwendung der betroffenen React-Pakete. |