← На главную

Уязвимость CosmosEscape в Azure Cosmos DB дала доступ к Entra ID и Teams

30.07.2026 12:13 · hackernews

Wiz Research нашла критическую уязвимость CosmosEscape в Azure Cosmos DB — флагманской облачной базе данных Microsoft. Дыра сидела в Gremlin API и позволяла скомпрометировать любую базу в сервисе, включая внутренние базы самого Microsoft — например, те, на которых держатся Microsoft Entra ID, Microsoft Teams и Microsoft Copilot.

Всё упиралось в так называемый Cosmos Master Key — платформенный секрет, дававший две убийственные возможности: захват и перечисление. Захват означал, что можно на лету получить primary key любого аккаунта Cosmos DB и получить полный доступ на чтение и запись. Перечисление давало список всех баз в сервисе с фильтрацией по идентификаторам подписки и тенанта. В связке это работало как прецизионное оружие: находишь через Config Store (реестр всех аккаунтов Cosmos DB) цель по tenant ID, тут же достаёшь её primary key и заходишь внутрь.

Началось всё с подозрительного исключения в .NET при выполнении Gremlin-запросов. Стало ясно, что Cosmos DB использует собственный движок Gremlin, а не стандартный JVM-ный. Такие движки часто компилируют запросы в исполняемый код внутри песочницы, а песочницы Gremlin исторически слабы. Исследователи обошли ограничения через рефлексию .NET и получили выполнение произвольного кода на DB Gateway — сервисе, который обрабатывает клиентские запросы и работает на мультитенантных кластерах Service Fabric.

Сам DB Gateway не хранил базы, но стучался к ним как обычный клиент — используя primary key целевого аккаунта. А ключ этот он доставал через подписывающий ключ, доступный на кластере. Оказалось, что подписывающий ключ вообще не был ограничен одним аккаунтом. Он работал кросс-тенантно, кросс-регионно и для всех API-интерфейсов — SQL, MongoDB, Cassandra, Gremlin. Его и назвали Cosmos Master Key.

С помощью мастер-ключа исследователи дотянулись и до Config Store — это региональный реестр всех учётных записей Cosmos DB, где лежат subscription ID, tenant ID, сетевые настройки и метаданные. Config Store сам по себе был базой Cosmos DB, а значит, его primary key можно было вытащить тем же способом. В итоге вся цепочка выглядела так: залез в Config Store, отфильтровал нужную организацию, получил ключ её баз — и читай/пиши что угодно. Уязвимость била и по частным, сетеизолированным аккаунтам, ведь компрометация DB Gateway давала к ним прямой доступ, а наличие записи в Config Store позволяло переписать настройки сетевой изоляции.

Microsoft полностью исправила проблему. Горячий фикс уехал в продакшен через 48 часов, а впоследствии команда Cosmos DB провела большую миграцию на усиленную архитектуру. Cosmos Master Key ликвидировали, добавили новые барьеры безопасности. Расследование не выявило следов эксплуатации за пределами исследовательской активности, клиентам никаких действий не требуется.

В исследовании команде Wiz Research помогал ранний прототип Atlas — их AI-инструмент для поиска уязвимостей. Полную цепочку атаки, разбор и пару сюрпризов обещают раскрыть на Black Hat USA в докладе «One Key to Rule Them All: Taking Over a Flagship Cloud Service».

Читать оригинал →