Autor: Evan Harris
Riesgo: Bajo
Componente afectado: Amazon MQ Broker MCP Server de AWS Labs

TL;DR

Una vulnerabilidad en el Amazon MQ Broker MCP Server de AWS Labs podía permitir a atacantes no autenticados en la misma red eliminar y crear brokers de Amazon MQ cuando el MCP Server se ejecuta en modo SSE. Informamos de la vulnerabilidad a AWS. Corrigieron el problema eliminando SSE por completo. No se expusieron credenciales, pero el fallo violaba el principio de mínimo privilegio y podía causar interrupciones operativas. Los usuarios deben actualizar de inmediato a la última versión.

Antecedentes

El Amazon MQ Broker MCP Server de AWS Labs permite a los asistentes de IA gestionar brokers de Amazon MQ mediante comandos sencillos para crear, eliminar y configurar la infraestructura de mensajería que sustenta las aplicaciones distribuidas.

Descubrimos una vulnerabilidad de exposición en red en el modo SSE del Amazon MQ MCP Server que permite a atacantes en la misma red secuestrar las operaciones de gestión de brokers.

Un atacante podía eliminar brokers de mensajes críticos, crear recursos no autorizados e interrumpir la infraestructura de mensajería, todo ello sin necesitar credenciales de AWS.

En esta entrada del blog explicamos cómo funciona la vulnerabilidad y demostramos un escenario de ataque realista que muestra con qué facilidad un compromiso de la red interna puede escalar hasta la interrupción de la infraestructura de AWS.

Resumen

%%{init: {'themeVariables': {'fontSize': '18px'}}}%%
flowchart TD
    A[Developer runs MCP Server
with --sse flag] --> B[Server binds to
0.0.0.0:8888
No authentication required] B --> C[Attacker gains network
access
• Open firewall rule
• Exposed port
• Local compromise] C --> D[Attacker discovers SSE
endpoint
Port scan or service
discovery] D --> E[Connect using MCP
Inspector
target-ip:8888/sse] E --> F[Enumerate available tools
list_brokers, delete_broker,
etc.] F --> G[List existing MQ brokers
Identify managed brokers
with mcp_server_version tag] G --> H{Server launched with
--allow-resource-creation?} H -->|Yes| I[Full Control:
• Delete brokers
• Create new brokers
• Resource sprawl
• Quota exhaustion] H -->|No| J[Limited Control:
• Delete existing brokers
• Denial of service
• Operational disruption] I --> K[Impact: Unauthorized
infrastructure management
without AWS credentials] J --> K style A fill:#e3f2fd style B fill:#fff3e0 style C fill:#ffebee style D fill:#ffebee style E fill:#ffebee style F fill:#ffebee style G fill:#ffebee style H fill:#fff9c4 style I fill:#ffcdd2 style J fill:#ffcdd2 style K fill:#c8e6c9

Escenario de ataque

  1. Un desarrollador u operador ejecuta el MQ MCP Server con:

    uv run server.py --sse

    De forma predeterminada, el MQ MCP Server se vincula a 0.0.0.0, lo que abre el servidor a ataques basados en red.

  2. Un atacante obtiene acceso a la red en la que se ejecuta este servidor (por ejemplo, a través de una regla de firewall abierta, un puerto expuesto o un compromiso local).

  3. El atacante se conecta al puerto SSE predeterminado (normalmente el 8888) utilizando un cliente como MCP Inspector.

  4. Una vez conectado, el atacante puede:

    4.1 Enumerar los brokers de MQ mediante la herramienta list_brokers

    4.2 Identificar los brokers etiquetados con mcp_server_version, lo que los marca como gestionados por un MCP Server

    4.3 Realizar operaciones mutativas como delete_broker

  5. Si el MCP Server se lanzó con el indicador adicional --allow-resource-creation, el atacante también podía crear nuevos brokers de MQ, lo que podría provocar una proliferación de recursos o el agotamiento de cuotas.

Prueba de concepto

Se demostró un ataque básico utilizando:

  • Un MCP Server víctima con --sse habilitado
  • Un atacante simulado dentro de la misma red
  • El cliente MCP Inspector para conectarse y emitir comandos

El atacante pudo:

  • Listar brokers
  • Eliminar cualquier broker con la etiqueta de gestión correspondiente
  • (Si estaba configurado) Crear nuevos brokers en la cuenta de AWS de la víctima

En ningún momento del ataque se expusieron ni se necesitaron credenciales de AWS.

Impacto

  • Denegación de servicio mediante la eliminación de brokers
  • Eliminación no autorizada de brokers de Amazon MQ
  • Creación no autorizada de recursos si --allow-resource-creation está habilitado
  • Violación del principio de mínimo privilegio, aun cuando los usuarios operan dentro de los límites previstos

Respuesta de AWS Labs

Tras comunicar el problema el 22 de mayo de 2025, AWS Labs confirmó rápidamente la vulnerabilidad y actuó con decisión. En lugar de implementar autenticación para el modo SSE, AWS Labs optó por eliminar por completo la funcionalidad SSE del MCP Server.

La corrección, publicada en el pull request #417, elimina por completo el modo de transporte SSE que creaba la exposición en red sin autenticación. Desde la versión del 27 de mayo de 2025, el exploit aquí demostrado ya no es posible.

Agradecemos a AWS Labs su rápida respuesta y su enfoque orientado a la seguridad, consistente en eliminar la funcionalidad de riesgo en lugar de intentar parchearla.

Recomendaciones

Para usuarios finales

  • Actualice a la última versión del AWS MQ MCP Server
  • No exponga servidores MCP a redes públicas o no confiables
  • Audite los servicios de la red interna para detectar exposiciones accidentales de herramientas privilegiadas
  • Evite pasar --allow-resource-creation a menos que sea explícitamente necesario para su caso de uso

Cronología

Fecha Evento
21 de mayo de 2025 Vulnerabilidad descubierta
22 de mayo de 2025 Vulnerabilidad comunicada a AWS Labs
27 de mayo de 2025 AWS Labs publica la corrección (PR #417) que elimina el soporte de SSE
8 de enero de 2026 Amazon CNA declara el problema fuera de alcance por tratarse de una configuración no predeterminada
9 de enero de 2026 Fecha de publicación acordada
15 de enero de 2026 Divulgación pública