
Detecte a vulnerabilidade CVE-2025-55182 (React2Shell) RCE em React Server Components. Scanner rápido e preciso com zero falsos positivos.
CVSS 10.0 RCE nos Componentes de Servidor React. Sua aplicação React 19 está vulnerável?
Scanner rápido e preciso para CVE-2025-55182 (React2Shell) — uma vulnerabilidade crítica de execução remota de código explorada ativamente. Zero falsos positivos com detecção inteligente de Componentes de Servidor.
O React2Shell é uma vulnerabilidade de severidade máxima (CVSS 10.0) nos Componentes de Servidor React que permite execução remota de código não autenticada. Atacantes podem explorá-la por meio de requisições HTTP especialmente criadas para endpoints de Funções de Servidor.
Principais fatos:
⚠️ Nota crítica: Apenas React 19.x é vulnerável. React 18.x e versões anteriores NÃO são afetados.
# Opção A: Scanner Node.js (recomendado — multiplataforma, sem dependências)
npx react2shell-scanner /caminho/para/seu/projeto
# Opção B: Download direto e execução
curl -sSL https://raw.githubusercontent.com/nxgn-kd01/react2shell-scanner/main/scan.js > scan.js
node scan.js /caminho/para/seu/projeto
# Opção C: Clonar e executar
git clone https://github.com/nxgn-kd01/react2shell-scanner.git
cd react2shell-scanner
node scan.js /caminho/para/seu/projeto
Resultados em segundos: 🚨 Vulnerável | ⚠️ Avisos | ✅ Seguro
Esta ferramenta realiza detecção inteligente de vulnerabilidades:
'use server'React:
19.0.0, 19.1.0, 19.1.1, 19.2.0Pacotes React Server DOM:
react-server-dom-webpack 19.0.0 - 19.2.0react-server-dom-parcel 19.0.0 - 19.2.0react-server-dom-turbopack 19.0.0 - 19.2.0Next.js:
14.0.0 a 14.2.3414.3.0-canary.0 a 14.3.0-canary.8715.0.0 a 15.0.615.1.0 a 15.1.815.2.0 a 15.2.515.3.0 a 15.3.515.4.0 a 15.4.715.5.0 a Frameworks adicionais afetados (conforme aviso oficial do React):
react-router 7.0.0 - 7.1.3waku 0.21.0 - 0.21.5@parcel/rsc 2.12.0 - 2.13.2@vitejs/plugin-rsc 0.1.0 - 0.2.0rwsdk (Redwood SDK) 0.1.0 - 0.4.0expo 52.0.0 - 52.0.9React: 19.2.1 ou superior
Next.js:
14.2.35+, 14.3.0-canary.88+15.0.7+, 15.1.9+, 15.2.6+, 15.3.6+, 15.4.8+, 15.5.7+16.0.10+Outros frameworks:
react-router: 7.1.4+waku: 0.21.6+@parcel/rsc: 2.13.3+@vitejs/plugin-rsc: 0.2.1+rwsdk: 0.4.1+expo: 52.0.10+Scanner Node.js (Recomendado):
Scanner Bash:
# Instalar jq (caso use o scanner Bash)
# macOS
brew install jq
# Ubuntu/Debian
sudo apt-get install jq
# RHEL/CentOS
sudo yum install jq
Opção A: Clonar (Recomendado para usuários)
# Clonar o repositório
git clone https://github.com/nxgn-kd01/react2shell-scanner.git
cd react2shell-scanner
# Tornar os scripts executáveis
chmod +x scan.sh scan.js
Opção B: Fork (Recomendado para colaboradores)
# Fork no GitHub (clique no botão "Fork" na página do repositório)
# Em seguida, clone o seu fork
git clone https://github.com/SEU_USUARIO/react2shell-scanner.git
cd react2shell-scanner
# Tornar os scripts executáveis
chmod +x scan.sh scan.js
# Adicionar remote upstream para manter-se atualizado
git remote add upstream https://github.com/nxgn-kd01/react2shell-scanner.git
Opção C: Download direto
# Versão Node.js (recomendada — multiplataforma)
curl -O https://raw.githubusercontent.com/nxgn-kd01/react2shell-scanner/main/scan.js
chmod +x scan.js
# Versão Bash (apenas Unix/Linux/macOS)
curl -O https://raw.githubusercontent.com/nxgn-kd01/react2shell-scanner/main/scan.sh
chmod +x scan.sh
🔍 Escanear diretório atual:
# Usando Node.js (recomendado)
node scan.js
# Usando Bash
./scan.sh
📁 Escanear projeto específico:
node scan.js /caminho/para/projeto
./scan.sh /caminho/para/projeto
🗂️ Escaneamento recursivo (todos os subdiretórios):
node scan.js -r
./scan.sh -r
Saída JSON (para automação):
node scan.js --json
./scan.sh --json
Modo CI/CD (sai com código 1 se vulnerável):
node scan.js --ci
./scan.sh --ci
Saída detalhada:
node scan.js -v
./scan.sh -v
Combinar opções:
node scan.js /caminho/para/projetos -r --json --ci
./scan.sh /caminho/para/projetos -r --json --ci
| Código | Significado |
|---|---|
| 0 | Nenhuma vulnerabilidade encontrada |
| 1 | Vulnerabilidades encontradas (ao usar a flag --ci) |
| 2 | Ocorreu um erro durante o escaneamento |
$ node scan.js ~/minha-app-react
╔════════════════════════════════════════════════════════════╗
║ Scanner CVE-2025-55182 (React2Shell) ║
╚════════════════════════════════════════════════════════════╝
Severidade: CRÍTICO (CVSS 10.0)
Descrição: RCE não autenticado em Componentes de Servidor React
Resumo do escaneamento:
Total de projetos: 1
Vulneráveis: 1
Seguros: 0
⚠ PROJETOS VULNERÁVEIS ENCONTRADOS:
1. /Users/user/minha-app-react
└─ react 19.0.0 → 19.2.1
└─ next 15.0.3 → 15.0.5
Comando de correção:
$ cd /Users/user/minha-app-react
$ npm install [email protected] [email protected]
$ node scan.js ~/projetos -r --json > resultados.json
{
"vulnerability": "CVE-2025-55182",
"severity": "CRITICAL",
"cvss": 10.0,
"scanned": 5,
"vulnerable": 2,
"results": [
{
"path": "/Users/user/projetos/app1",
"vulnerable": true,
"packages": [
{
"name": "react",
"version": "19.0.0",
"fixVersion": "19.2.1"
}
],
"packageManager": "npm",
"fixCommands": [
"cd /Users/user/projetos/app1",
"npm install [email protected]"
]
}
]
}
.github/workflows/security-scan.yml
name: Escaneamento de Segurança CVE-2025-55182
on: [push, pull_request]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Configurar Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Baixar scanner CVE-2025-55182
run: |
curl -O https://raw.githubusercontent.com/nxgn-kd01/cve-2025-55182-scanner/main/scan.js
chmod +x scan.js
- name: Escanear vulnerabilidades
run: node scan.js --ci
GitLab CI (.gitlab-ci.yml)
security-scan:
stage: test
image: node:18
script:
- curl -O https://raw.githubusercontent.com/nxgn-kd01/cve-2025-55182-scanner/main/scan.js
- chmod +x scan.js
- node scan.js --ci
allow_failure: false
O scanner realiza as seguintes verificações:
package.jsondependencies quanto de devDependencies'use server' nos arquivos fonte'use server' (indica uso de Funções de Servidor)O scanner inclui detecção inteligente para evitar falsos positivos:
output: 'export' são marcados como provavelmente seguros'use server' para confirmar uso real de Componentes de ServidorExemplo de saída:
✓ Nenhum projeto vulnerável encontrado
ℹ Projetos com notas de análise:
1. /caminho/para/projeto
ℹ Next.js ^15.1.3 está na faixa vulnerável, mas usa React 18 (seguro — apenas React 19 afetado)
2. /caminho/para/outro-projeto
ℹ Next.js 16.0.5 com React 19 detectado, mas nenhuma diretiva 'use server' encontrada (provavelmente seguro).
Nota: Funções de Servidor importadas dinamicamente exigem revisão manual.
node scan.js -r
Para cada projeto vulnerável, execute o comando de correção sugerido:
cd /caminho/para/projeto
npm install [email protected] [email protected] # Exemplo
Ou com yarn:
yarn upgrade [email protected] [email protected]
Ou com pnpm:
pnpm update [email protected] [email protected]
npm test
npm run build
node scan.js --ci
R: Atualmente, o scanner verifica dependências diretas no package.json. Para escaneamento profundo de dependências, use npm audit ou yarn audit em combinação com esta ferramenta.
R: Não, React 18 NÃO é afetado ✅
O CVE-2025-55182 afeta apenas Componentes de Servidor do React 19.x. O scanner identificará corretamente aplicações React 18 como seguras, mesmo que usem versões Next.js 15.x ou 16.x que estejam na faixa vulnerável.
R: Sim! Use a flag --ci para fazer o scanner sair com código 1 se vulnerabilidades forem encontradas, o que fará seu pipeline falhar. Veja exemplos de integração CI/CD acima.
R: Mitigações temporárias (atualizar é a única correção definitiva):
⚠️ Crítico: Estas são medidas temporárias apenas. Atualize para versões corrigidas o quanto antes.
R: Muito preciso, com prevenção inteligente de falsos positivos:
'use server' para confirmar vulnerabilidade realR: O scanner detecta diretivas 'use server' em seus arquivos fonte. No entanto, Funções de Servidor importadas dinamicamente (carregadas em tempo de execução via import()) podem não ser detectadas estaticamente. Se o scanner relatar "nenhuma diretiva 'use server' encontrada", mas você usar importações dinâmicas para Funções de Servidor, deve revisar manualmente esses arquivos. O scanner incluirá uma nota lembrando disso.
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests.
# Testar em projetos de exemplo
./test-scanner.sh
Este scanner agora detecta todos os principais frameworks habilitados para RSC, conforme o aviso oficial do React:
Para frameworks adicionais, por favor abra uma issue ou envie um PR.
Licença MIT - consulte o arquivo LICENSE para obter detalhes
Esta ferramenta é fornecida "como está" para a comunidade ajudar a identificar projetos vulneráveis. Sempre verifique os resultados do scanner e teste as atualizações em um ambiente seguro antes de implantar em produção.
Se você achar esta ferramenta útil, por favor:
Fique seguro e mantenha suas dependências atualizadas!
| Propriedade | Valor |
|---|
| ID CVE | CVE-2025-55182 |
| Nome | React2Shell |
| Pontuação CVSS | 10.0 (CRÍTICO) |
| Vetor CVSS | AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| Vetor de ataque | Rede |
| Autenticação | Nenhuma necessária |
| Impacto | Comprometimento total do sistema |
15.5.616.0.0 a 16.0.9| Opção | Descrição |
|---|
-r, --recursive | Escaneia todos os subdiretórios em busca de projetos Node.js |
-v, --verbose | Exibe saída detalhada |
--json | Gera resultados em JSON |
--ci | Sai com código 1 se vulnerabilidades forem encontradas (para CI/CD) |
-h, --help | Exibe mensagem de ajuda |