通过 SSE 模式对 AWS Labs 的 Amazon MQ Broker MCP 服务器进行未授权的 MQ Broker 控制
作者: Evan Harris
风险: 低
受影响组件: AWS Labs 的 Amazon MQ Broker MCP Server
摘要
AWS Labs 的 Amazon MQ Broker MCP 服务器中的一个漏洞,当 MCP 服务器以 SSE 模式运行时,可能允许同一网络中未经身份验证的攻击者删除和创建 Amazon MQ broker。我们已向 AWS 报告了该漏洞。他们通过完全移除 SSE 修复了该问题。没有凭据被泄露,但该缺陷违反了最小权限原则,并可能导致运营中断。用户应立即升级到最新版本。
背景
AWS Labs 的 Amazon MQ Broker MCP 服务器使 AI 助手能够通过简单的命令来管理 Amazon MQ broker,用于创建、删除和配置支撑分布式应用的消息传递基础设施。
我们在 Amazon MQ MCP 服务器的 SSE 模式中发现了一个网络暴露漏洞,它允许同一网络中的攻击者劫持 broker 管理操作。
攻击者可以删除关键的消息 broker、创建未授权的资源并破坏消息传递基础设施,而这一切都不需要任何 AWS 凭据。
在这篇文章中,我们剖析了该漏洞的工作原理,并演示了一个真实的攻击场景,展示内部网络的沦陷可以多么轻易地升级为对 AWS 基础设施的破坏。
概述
%%{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
攻击场景
-
开发者或运维人员使用以下命令运行 MQ MCP 服务器:
uv run server.py --sse默认情况下,MQ MCP 服务器绑定到 0.0.0.0,从而将服务器暴露给基于网络的攻击。
-
攻击者获得了运行该服务器的网络的访问权限(例如,通过开放的防火墙规则、暴露的端口或本地沦陷)。
-
攻击者使用诸如 MCP Inspector 之类的客户端连接到默认的 SSE 端口(通常为 8888)。
-
连接成功后,攻击者能够:
4.1 使用
list_brokers工具枚举 MQ broker4.2 识别带有
mcp_server_version标签的 broker,该标签表明它们由 MCP 服务器管理4.3 执行诸如
delete_broker之类的变更操作 -
如果 MCP 服务器是使用附加标志
--allow-resource-creation启动的,那么攻击者还可以创建新的 MQ broker,从而可能导致资源蔓延或配额耗尽。
概念验证
我们使用以下条件演示了一次基本攻击:
- 一台启用了
--sse的受害者 MCP 服务器 - 一名位于同一网络中的模拟攻击者
- 用于连接和发出命令的 MCP Inspector 客户端
攻击者能够:
- 列出 broker
- 删除任何带有相应管理标签的 broker
- (若已配置)在受害者的 AWS 账户中创建新的 broker
在攻击的任何环节都没有 AWS 凭据被泄露或被需要。
影响
- 通过移除 broker 造成的拒绝服务
- 未经授权删除 Amazon MQ broker
- 在启用
--allow-resource-creation时未经授权创建资源 - 违反最小权限原则,尽管用户是在预期范围内进行操作
AWS Labs 的回应
在我们于 2025 年 5 月 22 日披露该问题后,AWS Labs 迅速确认了该漏洞并采取了果断行动。AWS Labs 没有为 SSE 模式实现身份验证,而是选择从 MCP 服务器中完全移除 SSE 功能。
该修复在 pull request #417 中发布,彻底消除了造成未经身份验证网络暴露的 SSE 传输模式。自 2025 年 5 月 27 日的版本起,此处演示的漏洞利用已不再可行。
我们赞赏 AWS Labs 的快速响应,以及他们以安全为先的做法:移除有风险的功能,而不是试图对其打补丁。
建议
面向最终用户
- 升级到 AWS MQ MCP 服务器的最新版本
- 不要将 MCP 服务器暴露到公共或不受信任的网络
- 审计内部网络服务,检查是否意外暴露了特权工具
- 除非你的使用场景明确需要,否则避免传递
--allow-resource-creation
时间线
| 日期 | 事件 |
|---|---|
| 2025 年 5 月 21 日 | 发现漏洞 |
| 2025 年 5 月 22 日 | 向 AWS Labs 报告漏洞 |
| 2025 年 5 月 27 日 | AWS Labs 发布修复(PR #417),移除 SSE 支持 |
| 2026 年 1 月 8 日 | Amazon CNA 因非默认配置将问题标记为超出范围 |
| 2026 年 1 月 9 日 | 商定发布日期 |
| 2026 年 1 月 15 日 | 公开披露 |