Автор: 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

Сценарий атаки

  1. Разработчик или оператор запускает MQ MCP-сервер с помощью:

    uv run server.py --sse

    По умолчанию MQ MCP-сервер привязывается к 0.0.0.0, открывая сервер для сетевых атак.

  2. Злоумышленник получает доступ к сети, в которой работает этот сервер (например, через открытое правило межсетевого экрана, доступный порт или локальную компрометацию).

  3. Злоумышленник подключается к стандартному порту SSE (обычно 8888) с помощью клиента, такого как MCP Inspector.

  4. После подключения злоумышленник может:

    4.1 Перечислить брокеры MQ с помощью инструмента list_brokers

    4.2 Определить брокеры, помеченные тегом mcp_server_version, что указывает на их управление MCP-сервером

    4.3 Выполнять изменяющие операции, такие как delete_broker

  5. Если 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 Публичное раскрытие