
Laboratório educacional demonstrando CVE-2025-55182: RCE crítica em Componentes de Servidor React via poluição de protótipo no protocolo Flight
Laboratório educacional que demonstra a CVE-2025-55182 — uma vulnerabilidade crítica (CVSS 10.0) de Execução Remota de Código em React Server Components causada por poluição de protótipo no desserializador do protocolo Flight.
Aviso: Este repositório é destinado exclusivamente a fins educacionais e de pesquisa de segurança autorizada. O acesso não autorizado a sistemas de computador é ilegal. O autor não se responsabiliza pelo uso indevido deste material. Utilize apenas contra sistemas que você possua ou tenha permissão explícita por escrito para testar. Ao usar este código, você concorda que é responsável por suas próprias ações.
# 1. Clone
git clone https://github.com/Jeanback1/react-rsc-cve-2025-55182-lab.git
cd react-rsc-cve-2025-55182-lab
# 2. Inicie o laboratório (instâncias vulnerável e corrigida)
docker compose up -d
# Aguarde ~2 minutos para ambos os contêineres compilarem e iniciarem.
# 3. Explore a instância vulnerável
python exploit/exploit.py http://localhost:3011 id
# 4. Tente o mesmo na instância corrigida — falha
python exploit/exploit.py http://localhost:3012 id
docker compose
┌────────────────────────────────┐
│ │
atacante ────▶│ :3011 → rsc-lab-vulnerable │ React 19.2.0
│ (Server Action) │ ← explorável
│ │
│ :3012 → rsc-lab-patched │ React 19.2.1
│ (sem Server Action) │ ← corrigida
└────────────────────────────────┘
| Contêiner | Porta | Versão React | Server Action | Vulnerável? |
|---|---|---|---|---|
rsc-lab-vulnerable | 3011 | 19.2.0 | Sim | Sim |
rsc-lab-patched | 3012 | 19.2.1 | Não | Não |
requests (pip install requests)├── docker-compose.yml # Orquestração do laboratório
├── README.md # Este arquivo
├── LICENSE
│
├── vulnerable/ # App Next.js vulnerável
│ ├── Dockerfile
│ ├── package.json # [email protected], [email protected]
│ └── app/
│ ├── layout.tsx
│ ├── page.tsx # Server Component + Server Action
│ └── actions.ts # 'use server' — a superfície de ataque
│
├── patched/ # App Next.js corrigido
│ ├── Dockerfile
│ ├── package.json # [email protected], [email protected]
│ └── app/
│ ├── layout.tsx
│ └── page.tsx # Apenas Server Component (sem Server Actions)
│
├── exploit/
│ ├── exploit.py # Exploit RCE educacional (bem comentado)
│ ├── requirements.txt
│ └── pyproject.toml
│
└── docs/
└── CVE-2025-55182.md # Análise técnica completa
# Execução de comando único
python exploit/exploit.py <alvo> <comando>
# Exemplos
python exploit/exploit.py http://localhost:3011 id
python exploit/exploit.py http://localhost:3011 "cat /etc/passwd"
python exploit/exploit.py http://localhost:3011 "ls -la /app"
O exploit funciona em três estágios:
__proto__ → poluir Object.prototype.thenmultipart/form-data via endpoint Server ActionX-Action-Redirect (codificado em base64)| Pacote | Vulnerável | Corrigido |
|---|---|---|
react | ≤ 19.2.0 | ≥ 19.2.1 |
react-dom | ≤ 19.2.0 | ≥ 19.2.1 |
react-server-dom-webpack | ≤ 19.2.0 | ≥ 19.2.1 |
Consulte docs/CVE-2025-55182.md para uma análise completa:
__proto__ é perigosa