
run-codeExploit de Prueba de Concepto para CVE-2026-5029 — una vulnerabilidad crítica de Ejecución Remota de Código sin autenticación en Code Runner MCP Server, desencadenada a través de la herramienta MCP
run-codecuando el servidor se ejecuta con--transport http.
Code Runner MCP Server expone un endpoint JSON-RPC /mcp en el puerto 3088 cuando se lanza con la opción --transport http. Se puede acceder a este endpoint con cero autenticación — sin clave de API, sin token de sesión, sin comprobación de origen.
Cualquier atacante remoto sin autenticar que pueda alcanzar el puerto puede invocar directamente la herramienta MCP run-code, que acepta código fuente arbitrario y un identificador de lenguaje, lo escribe en un archivo temporal y lo ejecuta mediante child_process.exec() usando el intérprete correspondiente (bash, python, powershell y más de 30 otros).
Dado que no se aplica ninguna sanitización al parámetro code en ninguna etapa, esto resulta en Ejecución Remota de Código completa y sin autenticación con los privilegios del proceso que ejecuta el servidor MCP.
┌──────────┐ JSON-RPC tools/call ┌───────────────────────┐ exec() ┌──────────┐
│ Attacker │ ──── run-code tool ─────▶│ /mcp (port 3088) │ ─────────▶ │ RCE │
│ │ (no auth needed) │ Code Runner MCP │ │ on Host │
└──────────┘ └───────────────────────┘ └──────────┘
/mcp expuesto y enumera las herramientas MCP disponiblesrun-code (code, languageId)tools/call manipulada con un code controlado por el atacantecode en un archivo temporal y lo ejecuta a través del intérprete seleccionado.
├── exploit.py # 🎯 Interactive RCE exploit shell (Rich-based terminal UI)
└── README.md # 📖 You are here
exploit.py — Exploit InteractivoEl script de exploit principal, diseñado para uso profesional en evaluaciones de seguridad y casos de estudio. Se conecta al servidor MCP objetivo y abre un shell interactivo donde cualquier comando se ejecuta en vivo a través de la vulnerable herramienta run-code.
Las características incluyen:
-l (por defecto shellscript)pip# Clone the repository
git clone https://github.com/0x00phantom-hat/CVE-2026-5029-Exploit.git
cd CVE-2026-5029-RCE-Exploit
# Install dependencies
pip install fastmcp rich
# Drop into an interactive RCE shell (default: shellscript)
python3 exploit.py -u http://TARGET:3088/mcp
# Use a specific language interpreter
python3 exploit.py -u http://TARGET:3088/mcp -l python
# List all languages the MCP server advertises support for
python3 exploit.py -u http://TARGET:3088/mcp --available
# Probe which language runtimes are actually installed on the target
python3 exploit.py -u http://TARGET:3088/mcp --installed -v
# Show the help menu
python3 exploit.py -h
Una vez conectado, el exploit abre un prompt interactivo:
PhantomHat-MCP@Exploit-CVE-2026-5029 $ id
Escribe exit para cerrar la sesión.
--transport http en ninguna interfaz accesible desde la red — mantente en el transporte stdio por defecto127.0.0.1 y colócalo detrás de un proxy inverso autenticado o una VPNrun-code y los procesos hijo inusualesEsta herramienta se proporciona únicamente para pruebas de seguridad autorizadas y fines educativos.
El acceso no autorizado a sistemas informáticos es ilegal según leyes como la Computer Fraud and Abuse Act (CFAA), la Computer Misuse Act y legislación similar en todo el mundo. El autor no asume ninguna responsabilidad por el mal uso de este software.
Utiliza esta herramienta únicamente contra sistemas que poseas o para los que tengas autorización explícita por escrito para realizar pruebas.
Autor: Phantom Hat
Solo para pruebas de penetración autorizadas e investigación de seguridad.
| Property | Detail |
|---|
| CVE ID | CVE-2026-5029 |
| CVSS Score | 8.7 / 10 — Alta |
| CWE | CWE-306 — Falta de Autenticación para una Función Crítica |
| Affected Product | Code Runner MCP Server |
| Affected Versions | (Sin parchear) Todas las versiones que exponen la herramienta run-code a través de --transport http |
| Authentication | No se requiere ninguna (Sin autenticación) |
| Patch Status | Sin corregir |
| Discovered By | Phantom Hat |
| Flag | Descripción | Default |
|---|
-u, --url | (Obligatorio) URL del servidor MCP | — |
-l, --language | Lenguaje a utilizar para la ejecución de código | shellscript |
-a, --available | Lista todos los lenguajes compatibles | flag |
-i, --installed | Comprueba los runtimes de lenguaje instalados en el objetivo | flag |
-v, --verbose | Modo de salida detallada | flag |
-h, --help | Muestra el menú de ayuda | — |
| Phase | Name | Description |
|---|
| 1 | 🔍 Enumeración | Conéctate a /mcp y enumera las herramientas MCP disponibles |
| 2 | 🧪 Descubrimiento del Esquema | Confirma el esquema de entrada de run-code (code, languageId) |
| 3 | 💣 Entrega del Exploit | Envía una solicitud tools/call manipulada con código controlado por el atacante |
| 4 | 🚀 Ejecución Interactiva | Accede a un shell en vivo — cada comando se ejecuta en el host objetivo |