
Script Bash para detectar o CVE-2025-55182 (React2Shell) e exposição de credenciais em projetos Next.js. Zero dependências.
Para a versão em japonês, consulte README.ja.md.
Script Bash para detectar CVE-2025-55182 (React2Shell) e exposição de credenciais em projetos Next.js. Zero dependências.
CVSS: 10.0 (CRÍTICO) | CWE-502: Desserialização de Dados Não Confiáveis | SNORT SID: 65554
Execução remota de código não autenticada por meio da desserialização de dados não confiáveis em Server Components do Next.js. Um invasor envia uma solicitação HTTP especialmente criada para qualquer endpoint de Server Component do Next.js; o servidor desserializa a carga útil e executa código arbitrário.
Versões afetadas:
| Pacote | Faixa Vulnerável |
|---|
| 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 |
Referências:
Fase 1 — Versão do Next.js: Lê package.json, package-lock.json e yarn.lock para encontrar a versão resolvida do Next.js e a compara com a faixa vulnerável.
Fase 2 — Versão do React: Mesma abordagem para React (19.0.0, 19.1.0, 19.1.1, 19.2.0).
Fase 3 — App Router / Server Components: Detecta o diretório app/ e diretivas "use server". Uma versão vulnerável com Server Components ativos é uma superfície de ataque ativa.
Fase 4 — Exposição de credenciais: Examina arquivos .env* (excluindo .env.example e .env.sample), next.config.* e arquivos de código-fonte em busca de chaves de API, URLs de banco de dados, segredos JWT e prefixos de segredos embutidos (sk-, AKIA, ghp_, npm_).
Fase 5 — Chaves SSH: Procura arquivos de chave privada (id_rsa, *.pem, *.p12, etc.) e diretórios .ssh/ commitados dentro do projeto.
Fase 6 — Configuração de nuvem: Verifica arquivos Docker Compose em busca de segredos embutidos, manifestos Kubernetes para exposição de tokens de service account e uso de AWS SDK para indícios de IMDSv2.
Fase 7 — Verificação de IOC: Procura endereços IP de C2 da inteligência da Cisco Talos e padrões suspeitos de dotfiles em /tmp/ (Linux).
C2 IPs (Cisco Talos): 144.172.102.88 / 172.86.127.128 / 144.172.112.136 / 144.172.117.112
Fase 8 — Resumo: Contagens de CRITICAL/WARNING/INFO com etapas de remediação.
Nenhuma instalação é necessária. Baixe e execute:
curl -O https://raw.githubusercontent.com/aliksir/nextjs-security-scanner/main/scan.sh
bash scan.sh [target-directory]
Ou clone:
git clone https://github.com/aliksir/nextjs-security-scanner.git
bash nextjs-security-scanner/scan.sh /path/to/your/nextjs-app
# Scan current directory
bash scan.sh
# Scan a specific project
bash scan.sh /path/to/nextjs-app
# In CI/CD (non-zero exit = fail the pipeline)
bash scan.sh . || exit 1
Códigos de saída:
0 — Sem problemas1 — Avisos (padrões de credenciais detectados, revisão necessária)2 — Crítico (versão vulnerável confirmada, ação imediata necessária)=== 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
...
Atualize imediatamente:
npm install next@latest
npm install react@latest react-dom@latest
Consulte https://github.com/vercel/next.js/releases para a primeira versão corrigida em cada série menor.
Se houver suspeita de exploração:
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 [target-directory]
Palavras-chave de ativação: "next.js security check", "CVE-2025-55182", "React2Shell", "Next.js vulnerability scan"
Consulte claude-code/SKILL.md para o wrapper da skill.
Esta ferramenta é fornecida apenas para fins de segurança defensiva. Ela realiza verificações somente locais e somente leitura em seus próprios arquivos de projeto. Nenhuma conexão de rede é feita, nenhum dado é enviado externamente e nenhum exploit é executado.
As informações de vulnerabilidade e os dados de IOC são baseados em fontes publicamente disponíveis (NVD, Cisco Talos). Este scanner pode produzir falsos positivos ou deixar de detectar certos vetores de ataque. Ele não substitui auditorias de segurança profissionais, testes de penetração ou patches de segurança fornecidos pelos fornecedores.
Use por sua conta e risco. Os autores não assumem nenhuma responsabilidade por danos resultantes do uso desta ferramenta.
MIT — consulte LICENSE