“这个漏洞让我们获得了平台级的万能密钥,能在公开接口上点名、接管任何数据库。”Wiz研究团队这样描述他们发现的CosmosEscape漏洞。这是Azure旗舰数据库服务Cosmos DB存在的一处严重缺陷,攻击者通过它的Gremlin API就能一路打到微软自己的内部数据库。
事情的起点不过是一次对Gremlin查询的试探。团队在运行一条简单的图查询时意外抛出了.NET异常,而大部分开源Gremlin引擎都是跑在JVM上的,这个异常立刻暴露出Cosmos DB用的是自研的.NET引擎。Gremlin服务器通常会把查询编译成可执行代码,并在受限沙箱里运行,但历史一再证明这类沙箱很容易被绕过。Cosmos DB的沙箱同样没拦住——它的查询转译机制对.NET反射的限制不足,研究者在自己名下的一台数据库上,硬是通过构造恶意Gremlin查询,一步步拿到了文件读写能力,最后实现了任意代码执行。
顺着这条链打穿后,Wiz发现了一个平台级的全局秘密,他们管它叫“Cosmos Master Key”。这把钥匙藏在后端,却能做两件极其危险的事:
一是**接管**——直接调取任意Cosmos DB账户的主密钥,意味着攻击者对目标数据库获得完整的读写权限;
二是**枚举**——列出服务上所有数据库,还能按订阅ID、租户ID等组织标识过滤,实现精细化的企业定位。
两者串联起来的后果是:攻击者从公开端点就能先圈定微软之内的某个组织,再秒级窃取其数据库权限。Teams、Entra ID、Copilot 这些微软自家的核心服务全都跑在Cosmos DB上,理论上一旦中招,就可能引发跨服务连锁打击。
微软在接到报告后已经完整修复了漏洞,直接干掉了那套全局密钥机制,并为Cosmos DB新增了防护护栏,防止同类攻击再现。事后调查确认,除了Wiz自己的研究活动,没有发现漏洞被真实利用的痕迹,客户不需要做任何额外操作。Wiz方面则特别提到,这次研究得到了自家AI漏洞研究员Atlas早期版本的辅助,后续还有更多Atlas的成果等待放出。
热门跟贴