Несанкционированное управление MQ-брокером через режим SSE в MCP-сервере Amazon MQ Broker от AWS Labs
Автор: Evan Harris
Риск: Низкий
Затронутый компонент: MCP-сервер Amazon MQ Broker от AWS Labs
Коротко
Уязвимость в MCP-сервере Amazon MQ Broker от AWS Labs могла позволить неаутентифицированным злоумышленникам в той же сети удалять и создавать брокеры Amazon MQ, когда MCP-сервер запущен в режиме SSE. Мы сообщили об уязвимости в AWS. Компания устранила проблему, полностью удалив SSE. Учётные данные не были раскрыты, однако изъян нарушал принцип наименьших привилегий и мог привести к сбоям в работе. Пользователям следует незамедлительно обновиться до последней версии.
Предыстория
MCP-сервер Amazon MQ Broker от AWS Labs позволяет ИИ-ассистентам управлять брокерами Amazon MQ с помощью простых команд для создания, удаления и настройки инфраструктуры обмена сообщениями, на которой работают распределённые приложения.
Мы обнаружили уязвимость сетевой экспозиции в режиме SSE сервера Amazon MQ MCP, которая позволяет злоумышленникам в той же сети перехватывать операции управления брокерами.
Злоумышленник мог удалять критически важные брокеры сообщений, создавать несанкционированные ресурсы и нарушать работу инфраструктуры обмена сообщениями, причём всё это без каких-либо учётных данных 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, открывая сервер для сетевых атак.
-
Злоумышленник получает доступ к сети, в которой работает этот сервер (например, через открытое правило межсетевого экрана, доступный порт или локальную компрометацию).
-
Злоумышленник подключается к стандартному порту SSE (обычно 8888) с помощью клиента, такого как MCP Inspector.
-
После подключения злоумышленник может:
4.1 Перечислить брокеры MQ с помощью инструмента
list_brokers4.2 Определить брокеры, помеченные тегом
mcp_server_version, что указывает на их управление MCP-сервером4.3 Выполнять изменяющие операции, такие как
delete_broker -
Если MCP-сервер был запущен с дополнительным флагом
--allow-resource-creation, злоумышленник мог бы также создавать новые брокеры MQ, что потенциально приводит к разрастанию ресурсов или исчерпанию квот.
Демонстрация концепции
Базовая атака была продемонстрирована с использованием:
- MCP-сервера-жертвы с включённым
--sse - смоделированного злоумышленника в той же сети
- клиента MCP Inspector для подключения и отправки команд
Злоумышленник смог:
- Перечислить брокеры
- Удалить любой брокер с соответствующим управляющим тегом
- (при соответствующей настройке) создать новые брокеры в аккаунте AWS жертвы
Ни на одном этапе атаки учётные данные AWS не были раскрыты и не требовались.
Последствия
- Отказ в обслуживании из-за удаления брокеров
- Несанкционированное удаление брокеров Amazon MQ
- Несанкционированное создание ресурсов при включённом
--allow-resource-creation - Нарушение принципа наименьших привилегий, несмотря на то что пользователи действуют в рамках ожидаемых границ
Реакция AWS Labs
После того как мы раскрыли проблему 22 мая 2025 года, AWS Labs быстро подтвердила уязвимость и приняла решительные меры. Вместо реализации аутентификации для режима SSE компания AWS Labs решила полностью удалить функциональность SSE из MCP-сервера.
Исправление, выпущенное в pull request #417, полностью устраняет транспортный режим SSE, который создавал неаутентифицированную сетевую экспозицию. Начиная с выпуска от 27 мая 2025 года, продемонстрированный здесь эксплойт больше невозможен.
Мы высоко ценим быструю реакцию AWS Labs и их ориентированный на безопасность подход, при котором рискованная функциональность была удалена, а не залатана.
Рекомендации
Для конечных пользователей
- Обновитесь до последней версии AWS MQ MCP-сервера
- Не открывайте MCP-серверы для публичных или недоверенных сетей
- Проверяйте внутренние сетевые службы на предмет случайной экспозиции привилегированного инструментария
- Избегайте передачи флага
--allow-resource-creation, если это явно не требуется для вашего сценария использования
Хронология
| Дата | Событие |
|---|---|
| 21 мая 2025 | Уязвимость обнаружена |
| 22 мая 2025 | Об уязвимости сообщено в AWS Labs |
| 27 мая 2025 | AWS Labs выпускает исправление (PR #417), удаляющее поддержку SSE |
| 8 января 2026 | Amazon CNA пометила проблему как выходящую за рамки из-за нестандартной конфигурации |
| 9 января 2026 | Согласована дата публикации |
| 15 января 2026 | Публичное раскрытие |