
RSC/Next.js RCE (CVE-2025-55182 & CVE-2025-66478)
Strumento da riga di comando per il rilevamento di CVE-2025-55182 e CVE-2025-66478 nelle applicazioni Next.js che utilizzano React Server Components.
Per i dettagli tecnici sulla vulnerabilità e sulla metodologia 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 costruita contenente un payload proof-of-concept di RCE che esegue un'operazione matematica deterministica (41*271 = 11111). Gli host vulnerabili restituiscono il risultato nell'header di risposta X-Action-Redirect come /login?a=11111.
Lo scanner testa il percorso root (/) per impostazione predefinita. Usa --path o --path-file per testare percorsi personalizzati. Se non vulnerabile, segue i redirect sullo stesso host (ad es. / verso /en/) e testa la destinazione del redirect. I redirect cross-origin non vengono seguiti.
Il flag --safe-check utilizza un metodo di rilevamento alternativo basato su indicatori side-channel (codice di stato 500 con digest di errore specifico) senza eseguire codice sul target. Usa questa modalità quando non si desidera l'esecuzione di RCE.
Il flag --waf-bypass antepone dati casuali al corpo della richiesta multipart. Questo può aiutare a eludere l'ispezione dei contenuti del WAF che analizza solo la prima parte dei corpi delle richieste. La dimensione predefinita è 128KB, configurabile tramite --waf-bypass-size. Quando il bypass WAF è abilitato, il timeout viene automaticamente aumentato a 20 secondi (a meno che non sia impostato esplicitamente).
Il flag --vercel-waf-bypass utilizza una variante alternativa del payload specificamente progettata per eludere le protezioni del WAF di Vercel. Questa usa una diversa struttura multipart con un campo di modulo aggiuntivo.
Il flag --windows passa dal payload della shell Unix (echo $((41*271))) a PowerShell (powershell -c "41*271") per i target che eseguono Windows.
pip install -r requirements.txt
Scansione di un singolo host:
python3 scanner.py -u https://example.com
Scansione di un elenco di host:
python3 scanner.py -l hosts.txt
Scansione con più thread e salvataggio dei risultati:
python3 scanner.py -l hosts.txt -t 20 -o results.json
Scansione con header personalizzati:
python3 scanner.py -u https://example.com -H "Authorization: Bearer token" -H "Cookie: session=abc"
Utilizzo del rilevamento sicuro side-channel:
python3 scanner.py -u https://example.com --safe-check
Scansione di target Windows:
python3 scanner.py -u https://example.com --windows
Scansione con bypass WAF:
python3 scanner.py -u https://example.com --waf-bypass
Scansione di percorsi personalizzati:
python3 scanner.py -u https://example.com --path /_next
python3 scanner.py -u https://example.com --path /_next --path /api
python3 scanner.py -u https://example.com --path-file paths.txt
-u, --url URL singolo da controllare
-l, --list File contenente gli host (uno per riga)
-t, --threads Numero di thread concorrenti (predefinito: 10)
--timeout Timeout della richiesta in secondi (predefinito: 10)
-o, --output File di output per i risultati (JSON)
--all-results Salva tutti i risultati, non solo gli host vulnerabili
-k, --insecure Disabilita la verifica del certificato SSL
-H, --header Header personalizzato (può essere usato più volte)
-v, --verbose Mostra i dettagli della risposta per gli host vulnerabili
-q, --quiet Mostra solo gli host vulnerabili
--no-color Disabilita l'output colorato
--safe-check Usa il rilevamento sicuro side-channel invece del PoC RCE
--windows Usa il payload PowerShell di Windows invece della shell Unix
--waf-bypass Aggiungi dati casuali per eludere l'ispezione dei contenuti del WAF
--waf-bypass-size Dimensione dei dati casuali in KB (predefinito: 128)
--path Percorso personalizzato da testare (può essere usato più volte)
--path-file File contenente i percorsi da testare (uno per riga)
Il PoC RCE è stato originariamente divulgato da @maple3142 -- siamo incredibilmente grati per il loro lavoro nella pubblicazione di un PoC funzionante.
Questo strumento è stato originariamente creato come un modo sicuro per rilevare la RCE. Questa funzionalità è ancora disponibile tramite --safe-check, la modalità di "rilevamento sicuro".
I risultati vengono stampati sul terminale. Quando si usa -o, gli host vulnerabili vengono salvati in un file JSON contenente la richiesta e la risposta HTTP complete per la verifica.