
Script Nmap NSE per la scansione di React2Shell (CVE-2025-55182)
Script NSE di Nmap per la scansione di React2Shell (CVE-2025-55182)
Disclaimer Il codice seguente è fornito esclusivamente a scopo educativo e di ricerca. Qualsiasi utilizzo di questo script è a esclusiva discrezione e responsabilità dell'utente.
Questo scanner può produrre falsi positivi o risultati non conclusivi; pertanto è dovere dell'utente convalidare e confermare eventuali risultati segnalati. L'autore declina ogni responsabilità per usi impropri, danni o conseguenze indesiderate derivanti dall'esecuzione di questo codice.
Utilizzare questo strumento solo in ambienti in cui si dispone di esplicita autorizzazione. Il test non autorizzato dei sistemi è severamente proibito e potrebbe essere illegale.
Autore: Kevin Leon
Categorie: discovery, vuln, intrusive
Tipo di Script: Nmap NSE
nmap --script http-vuln-cve2025-55182.nse -p- <target>
nmap --script http-vuln-cve2025-55182.nse -p3000,3001,3002 <target>
nmap --script http-vuln-cve2025-55182.nse \
--script-args=http-vuln-cve2025-55182.waf_bypass=true <target>
PORT STATE SERVICE
3000/tcp open ppp
| http-vuln-cve2025-55182:
| VULNERABLE:
| React2Shell Remote Code Execution (RCE)
| State: VULNERABLE
| IDs: CVE:2025-55182
| Risk factor: High CVSS: 10.0
| Disclosure date: 2025-12-03
| References:
| https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components
| https://nvd.nist.gov/vuln/detail/CVE-2025-55182
| https://github.com/assetnote/react2shell-scanner
|_ https://github.com/msanft/CVE-2025-55182
Prima di tentare lo sfruttamento, lo script verifica che il target stia probabilmente eseguendo:
Metodi di rilevamento
Lo script esegue un iniziale:
http.get(host, port, "/")
e controlla:
X-Powered-By: next.jsX-Powered-By: react_next
(indicativo di asset statici di Next.js)Allora il target è considerato potenzialmente vulnerabile.
Generazione del Boundary Multipart
Lo script genera un boundary WebKit-form randomizzato:
----WebKitFormBoundary<random 16 chars>
Viene utilizzato per l'exploit multipart/form-data.
A seconda degli argomenti dell'utente:
Payload Exploit Semplice
Payload Bypass WAF
--script-args=http-vuln-cve2025-55182.waf_bypass=true
Include più campi e offuscamento per aggirare il middleware.
All'interno del payload, lo script inietta:
process.mainModule.require('child_process')
.execSync('echo $((41*271))')
Questo comando restituisce 11111 e viene successivamente utilizzato per verificare lo sfruttamento tramite il rilevamento del digest di reindirizzamento.
Lo script tenta di sfruttare la vulnerabilità inviando tramite POST il payload costruito a diversi endpoint RSC noti:
/
/_action
/api/action
/api
/_next/data
/__rsc
/action
/server
/server/action
Ogni richiesta viene inviata come:
http.post(host, port, path, header, payload)
Caso A — Errore HTTP 500 del Server
Un fallimento di deserializzazione riuscito indica una possibile vulnerabilità:
Caso B — Presenza del Digest NEXT_REDIRECT
Il payload forza un reindirizzamento lato server:
NEXT_REDIRECT;push;/login?a=11111;307;
Lo script verifica nelle intestazioni della risposta:
11111Se trovato → Altamente probabile vulnerabile
In base all'esito del rilevamento, lo script compila un report NSE standard:
VULNERABLE_VULN ┌──────────────────────┐
│ Start NSE Script │
└─────────────┬────────┘
│
▼
┌────────────────────┐
│ Request "/" │
│ Check headers/body │
└──────────┬─────────┘
│Yes
▼
┌────────────────────┐
│ React/Next.js Detected? ── No ─▶ Exit (Not Vulnerable)
└──────────┬─────────┘
│Yes
▼
┌────────────────────┐
│ Build multipart │
│ exploit payload │
└──────────┬─────────┘
▼
┌─────────────────────────────────┐
│ Loop through RSC endpoints │
│ Send POST exploit payload │
└──────────┬──────────────────────┘
│
┌─────────┴──────────────────────────────┐
▼ ▼
┌───────────────┐ ┌───────────────────┐
│ HTTP 500? │ YES │ Redirect digest? │ YES
└───────┬────────┘ └────────┬──────────┘
│NO │NO
▼ ▼
Continue testing Continue testing
│ │
└──────────────────────────────┬─────────┘
▼
┌────────────────────┐
│ Vulnerable? │
└──────────┬─────────┘
▼
Generate Report
Questo script fornisce un meccanismo di rilevamento approfondito, automatizzato e sicuro per la vulnerabilità React2Shell ad alto impatto. Il suo approccio di convalida a più livelli garantisce un rilevamento affidabile riducendo al minimo i falsi positivi.