
Laboratório de pesquisa de segurança para CVE-2025-55183 e CVE-2025-55184 em React Server Components
Um ambiente abrangente de testes de segurança para as vulnerabilidades CVE-2025-55183 (Exposição de Código Fonte) e CVE-2025-55184 (Negação de Serviço) em Componentes de Servidor React.
APENAS PARA FINS EDUCACIONAIS E DE PESQUISA EM SEGURANÇA
Este repositório contém aplicativos e ferramentas de exploração deliberadamente vulneráveis. Teste apenas em sistemas que você possui ou para os quais tenha permissão explícita por escrito. Testes não autorizados são ilegais e antiéticos.
Ambas as vulnerabilidades afetam as versões 19.0.0 a 19.2.2 dos Componentes de Servidor React, divulgadas em 11 de dezembro de 2025.
| Propriedade | Valor |
|---|---|
| Severidade | Média (CVSS 5.3) |
| Tipo | Divulgação de Informações |
| Impacto |
Atacantes podem coagir argumentos de Server Action a vazar código fonte exclusivo do servidor chamando .toString() em objetos de função do servidor. Isso expõe:
| Propriedade | Valor |
|---|---|
| Severidade | Alta (CVSS 7.5) |
| Tipo | Negação de Serviço |
| Impacto | Indisponibilidade completa do serviço |
Payloads especialmente criados criam recursão infinita de promessas, fazendo com que o servidor Node.js trave indefinidamente. Resulta em:
TL;DR: A aplicação ESTÁ vulnerável (React 19.0.0), mas proteções modernas podem impedir a falha real neste ambiente de demonstração.
CVE-2025-55184 é uma vulnerabilidade REAL e CRÍTICA que afeta React 19.0.0-19.2.2 em ambientes de produção. No entanto, demonstrar com sucesso a falha DoS em uma demonstração local pode ser desafiador devido a:
Mesmo que o exploit não trave a demonstração, você pode verificar a vulnerabilidade através de:
cd vulnerable-app
npm list react react-dom
# Output shows:
[email protected] ← VULNERABLE VERSION
[email protected] ← VULNERABLE VERSION
Se você vir 19.0.0 a 19.2.2, a aplicação ESTÁ vulnerável.
cd scanner
python scan.py http://localhost:3000
O scanner verifica:
git clone https://github.com/StealthMoud/react-server-cve-lab.git
cd react-server-cve-lab
# Inicie a aplicação (vulnerável a ambos os CVEs)
docker-compose up --build -d
# Aplicação disponível em: http://localhost:3000
cd scanner
# Instale as dependências
pip install -r requirements.txt
# Escaneie para ambas as vulnerabilidades
python scan.py http://localhost:3000
# Escaneie apenas CVE-2025-55183
python scan.py --cve 55183 http://localhost:3000
# Escaneie apenas CVE-2025-55184
python scan.py --cve 55184 http://localhost:3000
# Escaneie múltiplos alvos
python scan.py --file targets.txt
react-server-cve-lab/
├── README.md # Este arquivo
├── DOCUMENTATION.md # Documentação técnica completa
├── LICENSE
├── .gitignore
├── docker-compose.yml
│
├── vulnerable-app/ # Vulnerável a AMBOS os CVEs
│ ├── Dockerfile
│ ├── package.json
│ ├── next.config.js
│ └── app/
│ ├── layout.js
│ ├── page.js
│ └── actions.js # Ações de servidor vulneráveis
│
├── scanner/
│ ├── requirements.txt
│ ├── scan.py # Scanner para ambos os CVEs
│ └── README.md
│
└── exploits/
├── exploit-55183.py # PoC para CVE-2025-55183
├── exploit-55184.py # PoC para CVE-2025-55184
└── README.md
A aplicação é um aplicativo Next.js executando React 19.0.0 com Server Actions, vulnerável a ambos os CVEs.
# Usando Docker Compose (recomendado)
docker-compose up --build -d
# Verifique se está rodando
curl http://localhost:3000
# Veja os logs
docker-compose logs -f
# Pare a aplicação
docker-compose down
cd vulnerable-app
npm install
npm run build
npm start
O scanner unificado detecta tanto CVE-2025-55183 quanto CVE-2025-55184.
cd scanner
# Escaneie para ambas as CVEs
python scan.py http://localhost:3000
# Escaneie CVE específico
python scan.py --cve 55183 http://localhost:3000
python scan.py --cve 55184 http://localhost:3000
# Saída detalhada
python scan.py --verbose http://localhost:3000
# Tempo limite personalizado
python scan.py --timeout 10 http://example.com
# Escaneie múltiplas URLs de um arquivo
python scan.py --file targets.txt
# Salve resultados em JSON
python scan.py --output results.json http://localhost:3000
# Desative verificação SSL
python scan.py --no-verify https://self-signed.example.com
# Escaneie todas as CVEs com saída detalhada e salve resultados
python scan.py --verbose --output scan-results.json http://localhost:3000
╔═══════════════════════════════════════════════════════════╗
║ Scanner de Vulnerabilidades de Componentes de Servidor React ║
║ CVE-2025-55183 & CVE-2025-55184 ║
╚═══════════════════════════════════════════════════════════╝
[*] Testando http://localhost:3000
[CVE-2025-55183] Exposição de Código Fonte
[!] VULNERÁVEL: Código fonte vazado
Funções Expostas: 3
Comprimento do Código: 1247 caracteres
Contém Segredos: ✓ (chaves de API encontradas)
[CVE-2025-55184] Negação de Serviço
[!] VULNERÁVEL: Ataque DoS bem-sucedido
Código de Status: 404
Content-Type: text/plain
Marcadores Encontrados: ✓
============================================================
RESUMO
============================================================
Total testado: 1
CVE-2025-55183 vulnerável: 1
CVE-2025-55184 vulnerável: 1
Ambos os CVEs vulneráveis: 1
Não vulnerável: 0
Para análise técnica abrangente de ambas as vulnerabilidades:
DOCUMENTATION.md - Documentação técnica completa cobrindo:
Ambas as vulnerabilidades são corrigidas nas mesmas versões de patch:
Atualize o React para uma versão corrigida:
npm install [email protected] [email protected]
# ou
npm install react@latest react-dom@latest
Atualize o Next.js (se aplicável):
npm install next@latest
Verifique a correção:
npm list react react-dom next
python scanner/scan.py http://localhost:3000
# Execute o scanner para confirmar correções
cd scanner
python scan.py http://your-patched-app.com
# Saída esperada:
# [+] CVE-2025-55183: NOT VULNERABLE
# [+] CVE-2025-55184: NOT VULNERABLE
Contribuições são bem-vindas! Áreas para melhoria:
Sinta-se à vontade para enviar um Pull Request.
Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para detalhes.
Se você achar este repositório útil para sua pesquisa em segurança, considere dar uma estrela!
| Exposição de código fonte do servidor |
| Autenticação | Nenhuma Necessária |
| Autenticação | Nenhuma Necessária |
| Aspecto | CVE-2025-55183 | CVE-2025-55184 |
|---|
| Severidade | Média | Alta |
| Tipo | Divulgação de Informações | Negação de Serviço |
| Impacto | Vazamento de código fonte | Travamento do servidor |
| Detecção | Resposta contém código | Tempo limite/travamento do servidor |
| Recuperação | Imediata | Requer reinicialização |
| Pacote | Versões Vulneráveis | Versões Corrigidas |
|---|
| React | 19.0.0 - 19.2.2 | 19.0.3+, 19.1.4+, 19.2.3+ |
| Next.js 15.1.x | < 15.1.4 | 15.1.4+ |
| Next.js 15.0.x | < 15.0.4 | 15.0.4+ |
| Next.js 14.x | < 14.2.24 | 14.2.24+ |