
Exploit de prova de conceito para CVE-2026-5029, entregando execução remota de código não autenticada via a ferramenta run-code MCP em endpoints HTTP expostos. Inclui shell interativo, enumeração de linguagens e sondagem de alvo.
run-codeProva de conceito (PoC) para CVE-2026-5029 — uma vulnerabilidade crítica de Execução Remota de Código não autenticada no Code Runner MCP Server, acionada através da ferramenta MCP
run-codequando o servidor é executado com--transport http.
| Propriedade | Detalhe |
|---|---|
| CVE ID | CVE-2026-5029 |
| Pontuação CVSS | 8.7 / 10 — Alto |
| CWE | CWE-306 — Falta de Autenticação para Função Crítica |
| Produto Afetado | Code Runner MCP Server |
| Versões Afetadas | (Sem patch) Todas as versões que expõem a ferramenta run-code via --transport http |
| Autenticação | Nenhuma necessária (Não autenticada) |
| Status do Patch | Não corrigido |
| Descoberto Por | Phantom Hat |
Code Runner MCP Server expõe um endpoint JSON‑RPC /mcp na porta 3088 quando iniciado com a flag --transport http. Este endpoint é acessível com autenticação zero — nenhuma chave de API, nenhum token de sessão, nenhuma verificação de origem.
Qualquer atacante remoto não autenticado que consiga alcançar a porta pode invocar diretamente a ferramenta MCP run-code, que aceita código fonte arbitrário e um identificador de linguagem, escreve em um arquivo temporário e o executa via child_process.exec() usando o interpretador correspondente (bash, python, powershell e mais de 30 outros).
Como não há sanitização aplicada ao parâmetro code em nenhum estágio, isso resulta em Execução Remota de Código completa não autenticada com os privilégios do processo que executa o servidor MCP.
┌──────────┐ JSON-RPC tools/call ┌───────────────────────┐ exec() ┌──────────┐
│ Atacante │ ──── ferramenta run-code ──▶│ /mcp (porta 3088) │ ──────────▶ │ RCE │
│ │ (sem autenticação) │ Code Runner MCP │ │ no Host │
└──────────┘ └───────────────────────┘ └──────────┘
/mcp exposto e enumere as ferramentas MCP disponíveisrun-code (code, languageId)tools/call JSON‑RPC manipulada com code controlado pelo atacantecode em um arquivo temporário e executa via interpretador selecionado.
├── exploit.py # 🎯 Shell interativo de exploit RCE (interface de terminal baseada em Rich)
├── README.md # 📖 Você está aqui
exploit.py — Exploit InterativoO script principal do exploit, construído para uso profissional em avaliações de segurança e estudos de caso. Conecta-se ao servidor MCP alvo e entra em um shell interativo onde qualquer comando é executado em tempo real através da ferramenta vulnerável run-code.
Recursos incluem:
-l (padrão shellscript)pip# Clone o repositório
git clone https://github.com/0x00phantom-hat/CVE-2026-5029-Exploit.git
cd CVE-2026-5029-RCE-Exploit
# Instale as dependências
pip install fastmcp rich
# Entre em um shell RCE interativo (padrão: shellscript)
python3 exploit.py -u http://TARGET:3088/mcp
# Use um interpretador de linguagem específico
python3 exploit.py -u http://TARGET:3088/mcp -l python
# Liste todas as linguagens que o servidor MCP anuncia suporte
python3 exploit.py -u http://TARGET:3088/mcp --available
# Sondar quais runtimes de linguagem estão realmente instalados no alvo
python3 exploit.py -u http://TARGET:3088/mcp --installed -v
# Mostrar o menu de ajuda
python3 exploit.py -h
Uma vez conectado, o exploit entra em um prompt interativo:
PhantomHat-MCP@Exploit-CVE-2026-5029 $ id
Digite exit para encerrar a sessão.
| Flag | Descrição | Padrão |
|---|---|---|
-u, --url | (Obrigatório) URL do servidor MCP | — |
-l, --language | Linguagem a usar para execução de código | shellscript |
-a, --available | Listar todas as linguagens suportadas | flag |
-i, --installed | Sondar runtimes de linguagem instalados no alvo | flag |
-v, --verbose | Modo de saída verboso | flag |
-h, --help | Mostrar menu de ajuda | — |
| Fase | Nome | Descrição |
|---|---|---|
| 1 | 🔍 Enumeração | Conectar‑se a /mcp e enumerar ferramentas MCP disponíveis |
| 2 | 🧪 Descoberta de Esquema | Confirmar o esquema de entrada do run-code (code, languageId) |
| 3 | 💣 Entrega do Exploit | Enviar uma requisição tools/call manipulada com código controlado pelo atacante |
| 4 | 🚀 Execução Interativa | Entrar em um shell ao vivo — cada comando é executado no host alvo |
--transport http em qualquer interface de rede acessível — use o transporte padrão stdio127.0.0.1 e coloque‑o atrás de um proxy reverso autenticado ou VPNrun-code e processos filhos incomunsEsta ferramenta é fornecida apenas para testes de segurança autorizados e fins educacionais.
O acesso não autorizado a sistemas computacionais é ilegal sob leis como o Computer Fraud and Abuse Act (CFAA), o Computer Misuse Act e legislação similar em todo o mundo. O autor não assume nenhuma responsabilidade pelo uso indevido deste software.
Use esta ferramenta apenas contra sistemas que você possui ou para os quais tem autorização explícita por escrito para testar.
Autor: Phantom Hat
Apenas para testes de penetração autorizados e pesquisa de segurança.