Control no autorizado de brokers de MQ a través del modo SSE en el Amazon MQ Broker MCP Server de AWS Labs
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
-
Un desarrollador u operador ejecuta el MQ MCP Server con:
uv run server.py --sseDe forma predeterminada, el MQ MCP Server se vincula a 0.0.0.0, lo que abre el servidor a ataques basados en red.
-
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).
-
El atacante se conecta al puerto SSE predeterminado (normalmente el 8888) utilizando un cliente como MCP Inspector.
-
Una vez conectado, el atacante puede:
4.1 Enumerar los brokers de MQ mediante la herramienta
list_brokers4.2 Identificar los brokers etiquetados con
mcp_server_version, lo que los marca como gestionados por un MCP Server4.3 Realizar operaciones mutativas como
delete_broker -
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
--ssehabilitado - 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-creationestá 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-creationa 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 |