Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-33032 — Una sola llamada a función faltante en el registro de rutas fue suficiente para convertir la interfaz MCP en una puerta de enlace RCE sin autenticación. | Kitploit
Herramientas/GitHubGitHub/keraattin/cve-2026-33032
ReconocimientoEscáneres de VulnerabilidadesExplotaciónSeguridad WebSeguridad de RedesPruebas de PenetraciónSeguridad de APIs
GitHubkeraattin/cve-2026-33032

CVE-2026-33032

Una sola llamada a función faltante en el registro de rutas fue suficiente para convertir la interfaz MCP en una puerta de enlace RCE sin autenticación.

Ver Repositorio
544hace 5 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-33032 / MCPwn

CVE CVSS Status Affected License Python

Herramienta de detección no destructiva para la omisión de autenticación MCP de nginx-ui conocida públicamente como MCPwn. Permite la toma de control no autenticada de cualquier instancia de nginx-ui que ejecute una versión vulnerable mediante dos peticiones HTTP.

Tabla de Contenidos

  1. Datos Rápidos
  2. Resumen de la Vulnerabilidad
  3. Análisis Técnico Detallado
  4. Estrategia de Detección
  5. Instalación
  6. Uso
  7. Ejemplo de Salida
  8. Encadenar con CVE-2026-27944
  9. Remediación
  10. Uso Responsable
  11. Referencias
  12. Licencia

Datos Rápidos

CampoValor
ID CVECVE-2026-33032
AliasMCPwn
CVSS 3.19.8 / Crítico (AV:N / AC:L / PR:N / UI:N / S:U / C:H/I:H/A:H)
CWECWE-306 Autenticación Ausente para Función Crítica
Producto afectadonginx-ui (github.com/0xjacky/nginx-ui)
Versiones afectadasTodas las versiones anteriores a 2.3.4
Versión corregida2.3.4
Estado de explotaciónActiva en la naturaleza (Picus Security, Recorded Future)
Exposición en Shodan~2.689 instancias expuestas a internet
Fecha de publicación2026-04-15

Resumen de la Vulnerabilidad

nginx-ui expone una interfaz de Protocolo de Contexto de Modelo (MCP) que permite a un operador autenticado ejecutar herramientas destructivas como ediciones de configuración de nginx, comandos de reinicio y operaciones de copia de seguridad a través de JSON-RPC.

El endpoint /mcp está protegido por el middleware AuthRequired(), mientras que su endpoint asociado /mcp_message, que realmente recibe las invocaciones de herramientas, fue desplegado sin el middleware. Cualquier cliente que pueda alcanzar la interfaz web a través de la red puede:

  1. Abrir un flujo de Eventos Enviados por el Servidor (SSE) hacia /mcp y recibir un sessionID nuevo sin presentar ninguna credencial.
  2. Usar ese sessionID para invocar cualquier herramienta MCP registrada enviando un POST a /mcp_message, aún sin autenticación.

El atacante obtiene control total del proceso de nginx: editar bloques de servidor para redirigir tráfico, extraer claves privadas TLS mediante lecturas de rutas, recargar o detener nginx, e implantar puertas traseras persistentes.

Análisis Técnico Detallado

Causa raíz a nivel de código

// vulnerable (pre-2.3.4)
r.GET("/mcp",          AuthRequired(), mcpHandler)
r.POST("/mcp_message", mcpMessageHandler)    // middleware ausente

// corregido en 2.3.4
r.GET("/mcp",          AuthRequired(), mcpHandler)
r.POST("/mcp_message", AuthRequired(), mcpMessageHandler)

Una única llamada a función ausente en el registro de rutas fue suficiente para convertir la interfaz MCP en una puerta de entrada de RCE no autenticada.

Esquema del ataque de extremo a extremo

  Atacante                              nginx-ui (<2.3.4)
     |   1) GET /mcp  (sin autenticación)      |
     | -------------------------------------->  |
     |   2) event: endpoint data: /mcp_message?sessionID=XYZ
     | <--------------------------------------  |
     |   3) POST /mcp_message?sessionID=XYZ     |
     |      body: JSON-RPC call_tool "nginx_reload" o
     |             "edit_config {...}"          |
     | -------------------------------------->  |
     |   4) 200 OK; herramienta ejecutada con privilegios completos
     | <--------------------------------------  |

Matriz de impacto

Herramienta MCPEfecto en el servidor nginx
edit_configReescribir bloques de servidor arbitrarios, insertar upstream del atacante
reload_nginxAplicar configuración del atacante sin acción manual
stop_nginxDenegación de servicio
read_fileExfiltrar claves privadas TLS, credenciales de rutas montadas
create_certRe-emitir certificados TLS bajo control del atacante
list_backups / downloadExtraer copia de seguridad completa de nginx-ui incluyendo node_secret y hashes

Estrategia de Detección

Este repositorio evita intencionalmente cualquier acción destructiva. El detector solo utiliza métodos MCP de solo lectura (tools/list). La lógica:

> Paso 1  Identificar nginx-ui mediante
>         GET /               (título HTML, paquetes JS)
>         GET /api/settings   (JSON que referencia claves de nginx-ui)
>         Extraer versión mediante regex en cabecera / cuerpo
> Paso 2  Abrir flujo SSE hacia /mcp
>         Analizar el primer sessionID del evento "endpoint"
> Paso 3  POST /mcp_message?sessionID=<id>
>         Body: {"jsonrpc":"2.0","method":"tools/list","params":{}}
>         Sin cabecera Authorization
> Paso 4  Vulnerable si estado 200 y el cuerpo contiene un manifiesto de herramientas
>         Parcheado si estado 401 / 403 / 404
>         No concluyente en cualquier otro caso

Por qué esto es seguro

El método JSON-RPC tools/list es de solo lectura. Enumera qué herramientas conoce el servidor MCP pero no invoca ninguna de ellas. El script se niega a enviar POST con cualquier otro método y nunca construye cargas útiles para herramientas destructivas.

Instalación

git clone https://github.com/your-org/CVE-2026-33032-detector.git
cd CVE-2026-33032-detector
python3 --version      # 3.9 o superior
# No se requieren paquetes de terceros.

Para el componente Nmap NSE, copie nginx-ui-mcpwn.nse en su directorio local de scripts y actualice la base de datos de scripts:

cp nginx-ui-mcpwn.nse /usr/share/nmap/scripts/
sudo nmap --script-updatedb

Uso

Detector Python

# Objetivo único
python3 detect_nginx_ui_mcpwn.py --target https://nginx-ui.internal

# Escaneo masivo desde archivo
python3 detect_nginx_ui_mcpwn.py --targets targets.txt --workers 20

# Salida JSON (NDJSON) adecuada para canalizar a jq
python3 detect_nginx_ui_mcpwn.py --target 10.0.0.5:9000 --json | jq .

Referencia de línea de comandos:

Descargar herramienta