Detecta CVE-2025-55182 RCE em Componentes de Servidor React ao escanear lockfiles npm/pnpm/yarn, imagens Docker, SBOMs e URLs ao vivo. Inclui correção automática, saída SARIF e integrações CI/CD.
Scanner de segurança para CVE-2025-55182 - uma vulnerabilidade crítica (CVSS 10.0) de Execução Remota de Código não autenticada nos Componentes do Servidor React.
⚠️ AVISO
Este é um scanner de segurança, NÃO uma ferramenta de exploração. Foi projetado para ajudar desenvolvedores e equipes de segurança a identificar dependências vulneráveis em seus projetos.
Este é um projeto de código aberto movido pela comunidade fornecido "COMO ESTÁ" sem garantia de qualquer tipo, expressa ou implícita. Os autores e contribuidores não são responsáveis por quaisquer danos ou incidentes de segurança decorrentes do uso desta ferramenta.
Use por sua conta e risco. Sempre verifique os achados manualmente e siga as políticas de segurança da sua organização. Se você descobrir quaisquer problemas, bugs ou tiver sugestões, por favor contribua para ajudar a melhorar o projeto para todos.
🤝 PROCURAM-SE CONTRIBUIDORES
Este projeto está ativamente procurando testadores e contribuidores! Se você deseja reportar bugs, sugerir funcionalidades, melhorar a documentação ou enviar código - todas as contribuições são bem-vindas. Confira nosso Guia de Contribuição para começar.
Este projeto existe para ajudar a comunidade a responder ao CVE-2025-55182. Agradecemos e reconhecemos:
A maneira mais rápida de verificar se seu projeto está vulnerável:```bash npx react2shell-guard .
É isso! Isso irá escanear seu diretório atual e mostrar resultados imediatamente.
### 2. Escanear um Projeto Específico```bash
npx react2shell-guard /path/to/your/project
Encontrou vulnerabilidades? Corrija-as automaticamente:```bash
npx react2shell-guard fix --dry-run
npx react2shell-guard fix
npx react2shell-guard fix --install
### 4. Escanear URLs Ativas
Verifique se uma aplicação implantada está vulnerável:```bash
npx react2shell-guard scan-url https://your-app.com
Confirme se a correção implantada está funcionando:```bash npx react2shell-guard verify-patch https://your-app.com
### 6. Digitalizar Imagens de Contêiner
Verifique se suas imagens Docker contêm pacotes vulneráveis:```bash
npx react2shell-guard scan-image myapp:latest
Crie automaticamente um PR do GitHub para corrigir vulnerabilidades:```bash npx react2shell-guard create-pr --dry-run # Preview npx react2shell-guard create-pr # Create PR
---
## O que é CVE-2025-55182?
Em 29 de novembro de 2025, o pesquisador de segurança Lachlan Davidson descobriu e divulgou de forma responsável uma vulnerabilidade crítica nos React Server Components. A falha existe na forma como o React decodifica payloads enviados para endpoints de React Server Function, permitindo que atacantes não autenticados obtenham execução remota de código em servidores afetados sem qualquer interação do usuário.
CVE-2025-55182 é classificada como CVSS 10.0 (Crítica) e afeta React Server Components (RSC) e frameworks que utilizam o protocolo RSC "Flight".
**Pacotes Afetados:**
- `react-server-dom-webpack` 19.0.0, 19.1.0-19.1.1, 19.2.0
- `react-server-dom-parcel` (mesmas versões)
- `react-server-dom-turbopack` (mesmas versões)
- `next` 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, 16.0.0-16.0.6
**Mais Informações:**
- [Aviso de Segurança do React](https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components)
- [Pesquisa da Wiz](https://www.wiz.io/blog/critical-vulnerability-in-react-cve-2025-55182)
---
## Instalação (Opcional)
Para uso frequente, instale globalmente:```bash
npm install -g react2shell-guard
Depois use sem npx:```bash
react2shell-guard .
---
## Guia de Uso
### Escaneamento Básico```bash
# Scan current directory
react2shell-guard .
# Scan specific directory
react2shell-guard /path/to/project
# Scan and ignore certain paths
react2shell-guard . --ignore-path "examples/**" "test/**"
react2shell-guard .
react2shell-guard . --json
react2shell-guard . --sarif
react2shell-guard . --html report.html
### Opções da CLI
| Opção | Descrição |
|--------|-------------|
| `--json` | Gerar resultados como JSON |
| `--sarif` | Gerar resultados como SARIF 2.1.0 |
| `--html <file>` | Gerar relatório HTML independente |
| `--no-exit-on-vuln` | Não sair com código 1 quando vulnerabilidades forem encontradas |
| `--ignore-path <patterns>` | Caminhos a ignorar (ex.: `examples/**`) |
| `--debug` | Ativar saída de depuração |
### Códigos de Saída
| Código | Significado |
|------|---------|
| `0` | Nenhuma vulnerabilidade encontrada |
| `1` | Vulnerabilidades detectadas |
| `2+` | Erro fatal |
## Varredura de URL ao Vivo
Varra endpoints ativos para detectar se são vulneráveis:```bash
# Scan a single URL
react2shell-guard scan-url https://example.com
# Batch scan from a file (one URL per line)
react2shell-guard scan-url urls.txt --list
# With options
react2shell-guard scan-url https://example.com --timeout 5000 --json
O scanner usa impressão digital passiva para detectar endpoints vulneráveis do React Server Components sem explorar a vulnerabilidade:
Requisição de Sonda: Envia uma requisição POST elaborada simulando uma chamada de Ação do Servidor RSC com um payload mínimo:
multipart/form-data com estrutura de dados semelhante ao RSCNext-Action para acionar o processamento de Ações do ServidorAnálise de Resposta: Analisa a resposta HTTP em busca de assinaturas de vulnerabilidade:
^[0-9]+:E{ - formato de erro do protocolo RSC Flight"digest":"...RSC - digest do RSC em respostas de erroReactServerComponentsError - nomes de classes de erro do Reacttext/x-component.*error - tipo de conteúdo de erro do componenteNão Destrutivo: Isso é puramente um mecanismo de detecção - ele não executa nenhum payload malicioso nem explora a vulnerabilidade. A sonda usa dados benignos que acionam respostas de erro em servidores vulneráveis, mas não causam danos.
Nota: Uma detecção positiva significa que o servidor está executando uma versão vulnerável e retornou uma assinatura de erro específica do RSC. Isso NÃO significa que o servidor foi explorado.