
Script Bash per rilevare CVE-2025-55182 (React2Shell) e l'esposizione di credenziali in progetti Next.js. Zero dipendenze.
日本語版は README.ja.md を参照してください。
Script Bash per rilevare CVE-2025-55182 (React2Shell) e l'esposizione di credenziali in progetti Next.js. Zero dipendenze.
CVSS: 10.0 (CRITICO) | CWE-502: Deserializzazione di dati non attendibili | SNORT SID: 65554
Esecuzione di codice in remoto non autenticata tramite deserializzazione di dati non attendibili nei Server Components di Next.js. Un attaccante invia una richiesta HTTP appositamente creata a qualsiasi endpoint di un Server Component Next.js; il server deserializza il payload ed esegue codice arbitrario.
Versioni interessate:
| Pacchetto | Intervallo vulnerabile |
|---|---|
| Next.js | 15.0.0–15.0.4, 15.1.0–15.1.8, 15.2.0–15.2.5, 15.3.0–15.3.5, 15.4.0–15.4.7, 15.5.0–15.5.6, 15.6.0, 16.0.0–16.0.6 |
| React | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
Riferimenti:
Fase 1 — Versione di Next.js: Legge package.json, package-lock.json e yarn.lock per trovare la versione di Next.js installata e la confronta con l'intervallo vulnerabile.
Fase 2 — Versione di React: Stesso approccio per React (19.0.0, 19.1.0, 19.1.1, 19.2.0).
Fase 3 — App Router / Server Components: Rileva la directory app/ e le direttive "use server". Una versione vulnerabile con Server Components attivi costituisce una superficie d'attacco attiva.
Fase 4 — Esposizione di credenziali: Scansiona i file .env* (esclude .env.example e .env.sample), next.config.* e i file sorgente per chiavi API, URL di database, segreti JWT e prefissi di segreti hardcoded (sk-, AKIA, ghp_, npm_).
Fase 5 — Chiavi SSH: Cerca file di chiavi private (id_rsa, *.pem, *.p12, ecc.) e directory .ssh/ committate all'interno del progetto.
Fase 6 — Configurazione cloud: Verifica i file Docker Compose per segreti hardcoded, i manifest Kubernetes per l'esposizione di token di service account, e l'utilizzo di AWS SDK per indizi di IMDSv2.
Fase 7 — Controllo IOC: Cerca indirizzi IP C2 da intelligence Cisco Talos e pattern sospetti di file dot in /tmp/ (Linux).
C2 IPs (Cisco Talos): 144.172.102.88 / 172.86.127.128 / 144.172.112.136 / 144.172.117.112
Fase 8 — Riepilogo: Conteggi CRITICO/AVVISO/INFO con passaggi di remediation.
Nessuna installazione necessaria. Scarica ed esegui:
curl -O https://raw.githubusercontent.com/aliksir/nextjs-security-scanner/main/scan.sh
bash scan.sh [directory-target]
Oppure clona:
git clone https://github.com/aliksir/nextjs-security-scanner.git
bash nextjs-security-scanner/scan.sh /percorso/della/tua/app-nextjs
# Scansiona la directory corrente
bash scan.sh
# Scansiona un progetto specifico
bash scan.sh /percorso/dell/app-nextjs
# In CI/CD (exit non zero = fallimento della pipeline)
bash scan.sh . || exit 1
Codici di uscita:
0 — Nessun problema1 — Avvisi (pattern di credenziali rilevati, necessaria revisione)2 — Critico (versione vulnerabile confermata, azione immediata richiesta)=== Next.js Security Scanner ===
Target: /home/user/myapp
Date: 2026-04-04 12:00
CVE: CVE-2025-55182 (React2Shell, CVSS 10.0)
[Phase 1] Next.js version check
[CRITICAL] Next.js v15.2.4 is vulnerable to CVE-2025-55182 (React2Shell)
-> package.json: "next": "^15.2.4"
-> This version allows unauthenticated RCE via deserialization of Server Components
[Phase 2] React version check
[CRITICAL] React v19.1.0 is in the CVE-2025-55182 vulnerable list
[Phase 3] App Router / Server Components detection
[INFO] App Router detected (app/ directory exists)
[CRITICAL] Vulnerable Next.js + Server Components = active attack surface for React2Shell
...
=== Scan Summary ===
CRITICAL : 3
WARNING : 0
INFO : 2
CRITICAL issues found. Immediate action required.
=== Remediation (CVE-2025-55182) ===
1. Upgrade Next.js to a patched version:
npm install next@latest
...
Aggiorna immediatamente:
npm install next@latest
npm install react@latest react-dom@latest
Controlla https://github.com/vercel/next.js/releases per la prima versione corretta in ogni serie minor.
Se si sospetta uno sfruttamento:
ps aux | grep -E '\.sh|\.py'
crontab -l; cat /etc/cron*
ss -tnp | grep -E '144\.172|172\.86'
ls -la /tmp/ | grep '^\.'
144.172.102.88, 172.86.127.128, 144.172.112.136, 144.172.117.112bash scan.sh [directory-target]
Parole chiave di attivazione: "next.js security check", "CVE-2025-55182", "React2Shell", "Next.js vulnerability scan"
Vedi claude-code/SKILL.md per il wrapper della skill.
Questo strumento è fornito esclusivamente per scopi di sicurezza difensiva. Esegue controlli esclusivamente locali e in sola lettura sui file del proprio progetto. Non vengono effettuate connessioni di rete, nessun dato viene inviato all'esterno e non vengono eseguiti exploit.
Le informazioni sulla vulnerabilità e i dati IOC sono basati su fonti pubblicamente disponibili (NVD, Cisco Talos). Questo scanner potrebbe generare falsi positivi o non rilevare alcuni vettori d'attacco. Non sostituisce audit di sicurezza professionali, test di penetrazione o patch di sicurezza fornite dal fornitore.
Utilizzalo a tuo rischio. Gli autori declinano ogni responsabilità per danni derivanti dall'uso di questo strumento.
MIT — vedi LICENSE