Radar · 1º de agosto de 2026

CosmosEscape: uma consulta de grafo devolveu a chave de todos os bancos do Azure Cosmos DB

A Wiz saiu de uma consulta Gremlin no próprio banco e chegou a um segredo que recuperava a chave primária de qualquer conta do serviço, em qualquer região, inclusive as contas internas da Microsoft. Não há CVE, não há ação do cliente, e é exatamente por isso que o caso merece atenção.

Isolamento multitenant Azure Cosmos DB Sem CVE atribuído Referência: 30/07/2026
Console de operação de segurança com painéis de telemetria e monitoramento de serviços em nuvem
Falhas na camada de infraestrutura da nuvem não aparecem em varredura de vulnerabilidade do cliente. Elas aparecem, quando aparecem, em log de acesso.

O que aconteceu: em 30 de julho a Wiz Research publicou o CosmosEscape, uma cadeia de falhas na API Gremlin do Azure Cosmos DB. Os pesquisadores escaparam do sandbox de consulta, obtiveram execução de código no DB Gateway e encontraram uma chave de assinatura que valia para todo o serviço. Com ela era possível listar todas as contas de uma região e recuperar a chave primária de qualquer uma delas, com leitura e escrita completas. A Microsoft aplicou mitigação em 48 horas e concluiu a correção arquitetural em julho de 2026.

O ponto de partida foi uma exceção .NET aparecendo onde não deveria. A maioria das implementações de Gremlin, a linguagem de consulta de grafos do Apache TinkerPop, roda sobre JVM. Ver um erro de .NET indicava que a Microsoft tinha escrito o próprio motor, e motores de Gremlin costumam compilar a consulta em código executável antes de rodá-la em ambiente restrito.

Sandbox construído para conter código gerado a partir de entrada do usuário tem histórico ruim. Este também tinha.

Da consulta ao gateway

O motor traduzia a consulta Gremlin em código .NET e aplicava um conjunto de restrições para impedir que a consulta fizesse qualquer coisa além de operações de grafo. As restrições não cobriam reflexão em .NET de forma suficiente. A partir daí os pesquisadores montaram primitivas de leitura de arquivo, escrita e, por fim, execução arbitrária de código, tudo por meio de consultas contra o banco de dados deles mesmos.

O código passou a rodar no DB Gateway, o serviço que executa as consultas dos clientes em clusters Service Fabric compartilhados entre inquilinos. Os bancos dos clientes não ficam nesses clusters, mas o gateway precisa alcançá-los de alguma forma. Ele faz isso como qualquer cliente do Cosmos DB faria: usando a chave primária da conta de destino, que dá acesso total de leitura e escrita.

Restava a pergunta que define o tamanho do problema. Como o gateway obtém essa chave primária?

A chave que não estava presa a ninguém

Por credenciais disponíveis no cluster, o gateway alcançava uma chave de assinatura capaz de recuperar a chave primária da conta solicitada. Essa chave de assinatura não era escopada por conta. Funcionava entre inquilinos, entre regiões e entre sabores de API, incluindo SQL, MongoDB, Cassandra e Gremlin. Os pesquisadores a batizaram de Cosmos Master Key.

A mesma chave abria o Config Store, um registro regional com nome de conta, ID de assinatura, ID de inquilino, configuração de rede e etiquetas de todas as contas Cosmos DB daquela região. O Config Store é, ele próprio, um banco Cosmos DB, o que significa que podia ser consultado com a flexibilidade do motor SQL do serviço.

Juntando as duas peças, a cadeia fica curta e direta: consultar o Config Store filtrando por inquilino para achar os bancos de uma organização específica, e usar a Master Key para pegar a chave primária. Duas etapas, a partir de endpoints públicos.

Rede privada não protegia

Contas com isolamento de rede também estavam expostas, e a razão é estrutural. Quem aplica a regra de isolamento é o próprio DB Gateway. Comprometer o gateway significa passar por cima do controle. Os pesquisadores registram ainda que o acesso de escrita ao Config Store sugeria a possibilidade de reescrever as configurações de rede de uma conta alheia.

O Cosmos DB sustenta serviços da própria Microsoft. Entra ID, Teams e Copilot armazenam dados nele. Os bancos internos estavam sujeitos à mesma cadeia. A Microsoft afirma ter revisado logs de acesso e não encontrado atividade não autorizada fora dos testes da Wiz, e diz que nenhum dado de cliente foi acessado.

Linha do tempo

DataEvento
20/11/2025Wiz Research reporta a falha à Microsoft, que confirma o recebimento no mesmo dia.
22/11/2025Microsoft implanta mitigação bloqueando o ponto de entrada na API Gremlin e inicia a correção arquitetural.
Julho de 2026Conclusão da migração em todas as regiões, com eliminação da chave de escopo global.
30/07/2026Divulgação pública. Sem CVE e sem pontuação CVSS, por se tratar de falha em serviço gerenciado.
Agosto de 2026Cadeia completa de exploração será apresentada na Black Hat USA.

Leitura LATAMSEC

Oito meses entre a mitigação emergencial e o fim da correção. Esse intervalo não é crítica ao processo da Microsoft, que respondeu em 48 horas. É a medida realista de quanto tempo leva para reconstruir a arquitetura de autenticação de um serviço que sustenta outros serviços. E é tempo que o cliente passa sem saber de nada.

A frase "nenhuma ação é necessária" é verdadeira e insuficiente ao mesmo tempo. Verdadeira porque não há patch a aplicar. Insuficiente porque o cliente que quisesse verificar de forma independente se alguém usou a Master Key contra os bancos dele precisaria de log de plano de dados retido desde novembro de 2025. Poucas operações no Brasil têm isso. A maioria mantém log de plano de controle, que registra quem criou ou apagou recurso, e não quem leu documento.

Há uma pergunta prática que vale levar para a próxima reunião de arquitetura: quais dos nossos dados estão em serviço gerenciado onde a única fronteira de isolamento entre nós e outro inquilino é código do provedor que não podemos auditar? A resposta não implica sair da nuvem. Implica saber onde o risco é herdado, para que a decisão sobre criptografia com chave gerenciada pelo cliente, segregação de assinatura e retenção de log de acesso seja tomada por escrito, e não por omissão.

Vale um registro sobre o método. A Wiz informa que a pesquisa contou com auxílio de uma versão inicial do Atlas, o pesquisador de vulnerabilidades com IA da empresa. A mesma tecnologia que aparece do lado ofensivo em outras análises desta semana está encurtando o ciclo de descoberta do lado defensivo. A assimetria segue existindo, mas mudou de lugar.

Outros sinais do dia

SuperfícieGremlin era o caminho menos vigiado

Entre as APIs do Cosmos DB, a de grafo é a que compila consulta em código. Foi por ela que a cadeia começou, não pelo motor SQL.

EscopoUma chave para quatro APIs

A chave de assinatura funcionava para SQL, MongoDB, Cassandra e Gremlin, sem separação por região ou inquilino.

InventárioConfig Store como catálogo de alvos

O registro regional permitia filtrar bancos por ID de assinatura ou de inquilino, transformando enumeração em seleção de alvo.

Efeito cascataEntra ID, Teams e Copilot no caminho

Serviços da própria Microsoft armazenam dados em Cosmos DB. A falha na camada de baixo alcançava a camada de cima.

Fontes e aprofundamento

  1. Wiz Research · CosmosEscape: Taking Over Every Database in Azure Cosmos DB, por Yuval Avrahami e Lior Maman (divulgação original, 30/07/2026).
  2. Black Hat USA 2026 · One Key to Rule Them All: Taking Over a Flagship Cloud Service (apresentação com a cadeia completa de exploração).
  3. Apache TinkerPop · Documentação da linguagem Gremlin (contexto sobre compilação de consultas de grafo).
  4. TechTimes · Wiz Research Breached Azure Cosmos DB Gateway, Extracted Key to Every Database (cobertura de 30/07/2026).
Solicitar diagnóstico de exposição Ver histórico do Radar