
CVE-2025-55182 (React2Shell) Scanner
Un toolkit di valutazione della sicurezza sviluppato dal Team di Ricerca sulla Sicurezza di Rapticore per rilevare vulnerabilità dei React Server Components (RSC), inclusa CVE-2025-55182 (React2Shell), una vulnerabilità critica di esecuzione remota di codice.
Questo toolkit fornisce due strumenti specializzati:
| Strumento | Descrizione |
|---|---|
ore_rsc.py | Scanner veloce per endpoint RSC per valutazioni rapide |
ore_react2shell.py | Suite di valutazione completa con enumerazione dei sottodomini e reportistica |
https://github.com/user-attachments/assets/5be7661b-515c-46b4-ade4-8e88fdff6528
Scanner che rileva vulnerabilità CVE-2025-55182 (React2Shell) in un'applicazione Next.js di test.
CVE-2025-55182 (React2Shell) è una vulnerabilità RCE critica che interessa i React Server Components:
| Pacchetti interessati | Versioni vulnerabili | Versioni corrette |
|---|---|---|
| react-server-dom-webpack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1+ |
| react-server-dom-parcel | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1+ |
| react-server-dom-turbopack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1+ |
Riferimento: GHSA-fv66-9v8q-g76r
ore_rsc.py)ore_react2shell.py)# Clona il repository
git clone https://github.com/rapticore/ore_react2shell_scanner.git
cd ore_react2shell_scanner
# Crea ambiente virtuale
python3 -m venv env
source env/bin/activate # Su Windows: env\Scripts\activate
# Installa le dipendenze
pip install aiohttp jinja2
# Opzionale: Installa subfinder per l'enumerazione dei sottodomini
go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
ore_rsc.py# Scansione di un singolo dominio
python ore_rsc.py example.com
# Domini multipli
python ore_rsc.py example.com api.example.com
# Scansione da file
python ore_rsc.py -f subdomains.txt
# Scansione approfondita con percorsi estesi
python ore_rsc.py example.com --deep
# Verifica attiva (invia payload PoC)
python ore_rsc.py example.com --verify
# Controllo sicuro tramite canale laterale (non sfruttabile)
python ore_rsc.py example.com --safe-check
# Output JSON
python ore_rsc.py example.com --format json -o results.json
ore_react2shell.py# Valutazione completa con enumerazione dei sottodomini
# Risultati salvati in: results/example_com_{timestamp}/
python ore_react2shell.py --domain example.com
# Utilizza una lista di sottodomini esistente
python ore_react2shell.py --domain example.com -f subdomains.txt
# Domini radice multipli
python ore_react2shell.py --domain example.com --domain example.org
# Con verifica attiva
python ore_react2shell.py --domain example.com --verify
# Controllo sicuro tramite canale laterale
python ore_react2shell.py --domain example.com --safe-check
# Salta l'enumerazione dei sottodomini
python ore_react2shell.py --domain example.com --skip-enum
# Directory di output personalizzata
python ore_react2shell.py --domain example.com -o ./reports
I report vengono organizzati automaticamente per dominio e timestamp:
results/
└── example_com_20250106_143052/
├── rsc_assessment.html # Report HTML interattivo
├── rsc_assessment.json # JSON leggibile da macchina
├── rsc_assessment.csv # Formato foglio di calcolo
└── rsc_assessment_executive_summary.txt # Riepilogo testuale
| Opzione | Descrizione |
|---|---|
domains | Dominio(i) da scansionare |
-f, --file | File contenente i domini (uno per riga) |
-c, --concurrency | Richieste concorrenti (default: 20) |
-t, --timeout | Timeout della richiesta in secondi (default: 25) |
--deep | Scansione approfondita con percorsi estesi |
--verify | Verifica attiva - invia payload PoC RCE |
--safe-check | Verifica sicura tramite canale laterale |
--waf-bypass | Modalità bypass WAF con dati spazzatura |
-o, --output | Percorso del file di output |
--format | Formato di output: console, json, csv |
| Opzione | Descrizione |
|---|---|
-d, --domain | Dominio(i) target da valutare (obbligatorio) |
-f, --file | File contenente i sottodomini |
--skip-enum | Salta l'enumerazione dei sottodomini |
-c, --concurrency | Richieste concorrenti (default: 30) |
--deep | Scansione approfondita con percorsi estesi |
--verify | Modalità di verifica attiva |
--safe-check | Verifica sicura tramite canale laterale |
-o, --output | Directory di output di base (default: results) |
--format | Formato di output: html, json, csv, txt, all |
Lo scanner implementa una logica di verifica robusta per gestire server instabili:
Gli scanner rilevano gli endpoint RSC tramite:
text/x-component, text/x-rsc, text/x-flightx-nextjs-cache, rsc, next-action, ecc.0:, 1:), riferimenti React ($)$ACTION_ID, formAction| Livello di Rischio | Criteri |
|---|---|
| CRITICO | Sfruttamento confermato tramite --verify |
| ALTO | Probabilmente vulnerabile tramite --safe-check |
| MEDIO | Endpoint RSC con server actions |
| BASSO | Endpoint RSC rilevato |
| INFO | Indicatori RSC presenti |
Se vengono rilevati endpoint vulnerabili:
react-server-dom-* alle versioni corrette (19.0.1, 19.1.2, 19.2.1+)Questo strumento è destinato esclusivamente a valutazioni di sicurezza autorizzate. Utilizzalo solo su domini di cui sei proprietario o per cui hai esplicita autorizzazione scritta per i test.
Il Team di Ricerca sulla Sicurezza di Rapticore non si assume alcuna responsabilità per un uso improprio.