作者: 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

攻击场景

  1. 开发者或运维人员使用以下命令运行 MQ MCP 服务器:

    uv run server.py --sse

    默认情况下,MQ MCP 服务器绑定到 0.0.0.0,从而将服务器暴露给基于网络的攻击。

  2. 攻击者获得了运行该服务器的网络的访问权限(例如,通过开放的防火墙规则、暴露的端口或本地沦陷)。

  3. 攻击者使用诸如 MCP Inspector 之类的客户端连接到默认的 SSE 端口(通常为 8888)。

  4. 连接成功后,攻击者能够:

    4.1 使用 list_brokers 工具枚举 MQ broker

    4.2 识别带有 mcp_server_version 标签的 broker,该标签表明它们由 MCP 服务器管理

    4.3 执行诸如 delete_broker 之类的变更操作

  5. 如果 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 日 公开披露