
Ein Proof-of-Concept-Tool zur Demonstration der kritischen React2Shell-Sicherheitslücke
Ein Proof-of-Concept-Tool zur Demonstration der kritischen React2Shell-Schwachstelle (CVE-2025-55182 / CVE-2025-66478) nur in autorisierten, lokalen Testumgebungen.
CVE-2025-55182 (React2Shell) ist eine kritische, vor der Authentifizierung ausnutzbare Remote-Code-Ausführungs-Schwachstelle (RCE) im „Flight“-Protokoll der React Server Components (RSC). Eine separate Kennung, CVE-2025-66478, wurde für Next.js vergeben, inzwischen jedoch als Duplikat von CVE-2025-55182 abgelehnt, da beide dieselbe 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 Schwachstelle hat ihren Ursprung in bestimmten React-Paketen und betrifft jedes Framework, das diese bündelt.
Nicht betroffen: Next.js 13.x, stabile Versionen von Next.js 14.x, 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 Objekteigenschaften aus der eingehenden Nutzlast ohne ausreichende Validierung unsicher erweitert. Dadurch kann ein Angreifer bösartige Schlüssel (wie __proto__ oder constructor) in die Anfrage einschleusen, was zu Prototyp-Verschmutzung (Prototype Pollution) führt.
Ist die Prototyp-Kette erst einmal verschmutzt, folgt der Server vom Angreifer beeinflussten Ausführungspfaden. Dies kann zu einer Kette führen, die die Ausführung beliebigen JavaScript-Codes mit Serverrechten ermöglicht und so 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 zwingend erforderlich und der einzige Weg, die Schwachstelle vollständig zu beseitigen. Es gibt keine Konfigurationseinstellung, um den verwundbaren 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, dass Ihre Dateien package-lock.json oder yarn.lock die gepatchten Paketversionen von react-server-dom-* (19.0.1, 19.1.2 oder 19.2.1) enthalten.
Während Sie patchen, setzen Sie Regeln für die Web Application Firewall (WAF) ein, um Exploit-Versuche zu blockieren:
AWSManagedRulesKnownBadInputsRuleSet (v1.24+) enthält Regeln für diese CVE.cve-canary ist verfügbar.Hinweis: WAF-Regeln sind eine vorübergehende, unvollständige Gegenmaß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. Anforderungsinhalte, 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 Schwachstelle mit einem CVSS-Score von 10.0 (maximale Schwere), die aktiv und staatlich gefördert 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 gefährden. Stellen Sie sicher, dass alle Ihre Abhängigkeiten auf die oben aufgeführten gepatchten Versionen aktualisiert werden.
TAHA MOUNIR
| Komponente | Betroffene Versionen | Gepatchte Versionen | Hinweise |
|---|
| React Packages ( 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 | Ursache des Upstream-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 | Hauptsächlich 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. |