Как CosmosEscape открывал путь к любой базе Cosmos DB?

Компания Wiz обнаружила в Microsoft Azure Cosmos DB цепочку уязвимостей, получившую название CosmosEscape. Исследователи сообщили о ней Microsoft в ноябре 2025 года, и за 48 часов корпорация заблокировала уязвимую точку входа Gremlin. В июле 2026 года долгосрочное исправление развернули во всех регионах Azure, одновременно удалив общий для платформы ключ. Microsoft утверждает, что за пределами тестов Wiz не обнаружила несанкционированной активности, доступа к данным клиентов или иного ущерба; пользователям ничего предпринимать не требуется.
Для начала атаки не нужен был доступ к чужой базе. Wiz использовала собственную базу Gremlin и действующие учетные данные принадлежащего исследователям аккаунта Cosmos DB. В актуальном руководстве Microsoft для отправки Gremlin-запроса перечислены адрес хоста аккаунта, база данных, путь к графу и первичный ключ. Публично не установлено, требовалось ли злоумышленнику что-либо еще. Издание The Hacker News запросило у Wiz точные условия эксплуатации и сведения о фактически проверенном масштабе атаки, пообещав обновить публикацию после ответа.
Cosmos DB обрабатывает Gremlin-запросы при помощи собственного движка: тот преобразует запрос в и исполняет его в ограниченной среде. Защита песочницы некорректно учитывала возможности . Манипулируя рефлексией, исследователи сначала получили примитивы чтения и записи файлов, затем добились исполнения произвольного кода. В опубликованном отчете показан результат команды hostname, выполненной специально подготовленным запросом на серверной системе Cosmos DB. Сам вредоносный запрос Wiz не раскрыла.
Код выполнялся на компоненте, который Wiz называет DB Gateway. Этот шлюз обрабатывает клиентские запросы и работает в многопользовательских кластерах Azure Service Fabric. Сами клиентские базы на таких кластерах не хранились, но DB Gateway мог запрашивать первичный ключ указанного аккаунта Cosmos DB. По документации Microsoft, первичный ключ дает полный контроль над всеми ресурсами аккаунта. Его кража означала бы чтение, изменение и удаление содержимого принадлежащих аккаунту баз.
Доступные с захваченного DB Gateway учетные данные позволяли обратиться к общеплатформенному ключу подписи. Wiz назвала его Cosmos Master Key. По данным исследователей, с его помощью можно было получать первичные ключи аккаунтов из других клиентских тенантов и регионов Azure. Возможный охват не ограничивался Gremlin: в него входили API SQL, MongoDB, Cassandra и Gremlin. Получалась неприятная схема: злоумышленник начинал в собственной базе, выходил из песочницы общего шлюза, а затем мог запрашивать ключи совершенно посторонних клиентов. В июле 2026 года Microsoft ликвидировала Cosmos Master Key в рамках окончательного исправления.
Тот же секрет открывал региональную базу, названную исследователями Config Store. В каталоге находились имена аккаунтов Cosmos DB, идентификаторы подписок Azure и тенантов, сетевые параметры и теги. Эти сведения позволяли отыскать ресурсы конкретной организации, запросить их первичные ключи и получить полный доступ. Wiz также добилась записи в Config Store, что теоретически давало возможность менять сетевые настройки. Изменение параметров аккаунта другого клиента исследователи, судя по отчету, не проводили.
Приватные и изолированные на сетевом уровне аккаунты тоже могли оказаться достижимыми. Проверка сетевых ограничений выполнялась внутри инфраструктуры Cosmos DB на уже скомпрометированном шлюзе, поэтому внешний периметр не останавливал код, запущенный в самом сервисе. Запись в Config Store добавляла риск подмены сетевой конфигурации, хотя межклиентский сценарий такого рода публично не подтвержден.
Среди сервисов Microsoft, использующих Cosmos DB, названы Teams и Copilot. Документация Microsoft сообщает, что данные сообщений Teams остаются в Cosmos DB, а инженерная публикация компании указывает на хранение там пользовательских запросов и историй разговоров Copilot. Wiz считала обслуживающие эти продукты базы потенциально доступными через CosmosEscape. При этом исследователи не сообщали о чтении сообщений Teams, запросов Copilot или историй бесед. Microsoft также заявила, что никакие клиентские данные прочитаны не были.
Фактически Wiz показала выход из песочницы Gremlin, чтение и запись файлов, исполнение произвольного кода и запуск hostname на сервере. Далее исследователи скомпрометировали среду DB Gateway, получили доступ к Cosmos Master Key и региональному Config Store, извлекали первичные ключи через механизм шлюза и записывали данные в Config Store. Возможность проникнуть в любой аккаунт разных тенантов и регионов, добраться до закрытых баз или поменять чужие сетевые настройки описывалась как потенциальный ущерб. Доступ к реальным данным клиентов, Teams и Copilot не зафиксирован; доказательств эксплуатации посторонними атакующими тоже нет.
Представитель Microsoft сообщил The Hacker News: «Мы признательны Wiz за выявление этой проблемы и сообщение о ней в рамках скоординированного раскрытия уязвимости. Мы полностью устранили проблему и по итогам наших расследований не нашли свидетельств ущерба для клиентов. Мы продолжаем вкладываться в дополнительные усовершенствования безопасности всей платформы». Компания отдельно подтвердила отсутствие несанкционированной активности вне тестов Wiz и заявила, что смена ключей или другие действия со стороны клиентов не нужны.
Неизвестно, когда уязвимый движок Gremlin и путь к ключу подписи попали в рабочую среду, а также какой срок охватывала проверка журналов Microsoft. Не раскрыты полный запрос для эксплуатации и фактические границы тестов Wiz. Полную цепочку исследователи собираются представить 6 августа на брифинге Black Hat USA; год мероприятия в публичном тексте прямо не указан. У CosmosEscape нет опубликованного идентификатора CVE и оценки CVSS. Эта цепочка технически не связана с ChaosDB 2021 года и CosMiss 2022 года: обе прежние уязвимости затрагивали Jupyter Notebook в Cosmos DB, тогда как новый путь проходил через движок Gremlin, , DB Gateway, Cosmos Master Key и Config Store.


Новое на сайте

Ссылка