WizがAzure Cosmos DBの重大な脆弱性「CosmosEscape」を発見、全顧客データにアクセス可能だったと報告
2026年8月1日 01:51
Wiz Researchは、Azure Cosmos DBのGremlinクエリエンジンに存在する脆弱性チェーン「CosmosEscape」を公開した。この脆弱性を悪用すると、標準的なアカウントを持つ攻撃者がサービス上の全顧客データベースを読み書きできるプラットフォーム全体の署名キーを取得できる可能性があった。Microsoftはすでに脆弱性を完全に修正しており、研究者によるテスト以外で顧客データへのアクセスは確認されていないとしているが、脆弱性が存在していた期間の全容は未確定のままである。
■CosmosEscapeの影響範囲とアクセス可能だったデータ
Azure Cosmos DBは、世界中のエンタープライズ顧客やMicrosoft自身の内部インフラで使用されている、Microsoftの主力マネージドNoSQLデータベースサービスである。Microsoft Purviewのドキュメントによると、TeamsのメッセージデータはCosmos DBに保存されている。Microsoft Copilotはユーザーのクエリと会話履歴をそこに保存し、Microsoft Entra IDもCosmos DB上で大規模に稼働している。Wizは、これら3つの製品を支えるデータベースがCosmosEscapeを通じてアクセス可能な範囲にあったことを確認したが、研究者らが実際にアクセスすることはなかった。
影響範囲には、ネットワーク分離されたアカウントやプライベートエンドポイントを使用するすべてのアカウントも含まれていた。Cosmos DBにおけるアカウントごとのネットワーク分離は、CosmosEscapeが侵害したのと同じDBゲートウェイ層によって強制されているため、分離境界が内側からバイパスされたことを意味する。
■単一のクエリからプラットフォーム全体のキー取得へ
Cosmos DBはGremlinグラフクエリ言語をサポートしており、バックエンドでは、ほとんどのGremlinサーバーが使用するJVMベースのオープンソース実装ではなく、カスタムの.NETベースのGremlin実行エンジンを使用して処理している。このエンジンはGremlinクエリを.NETコードにコンパイルし、制限されたサンドボックス内で実行する。
このサンドボックスは、クエリが呼び出せるGremlinの操作を制限していたが、.NETのリフレクション(実行時にコードが任意の型やメソッドを動的に検査・呼び出しできる機能)は制限していなかった。これにより、サンドボックスが依存していた型システムのチェックをバイパスできた。Wizの研究者はこの隙を突くクエリを作成することで、ファイルの読み書きプリミティブを構築し、最終的にはCosmos DBのバックエンド上で任意のコード実行を達成した。これらはすべて、被害者のアカウントにアクセスすることなく、自身のデータベースに対して送信されたクエリから行われた。
コード実行は、マルチテナントのAzure Service Fabricクラスター上で稼働し、顧客に代わってクエリを実行するMicrosoftのサービスコンポーネントであるDBゲートウェイに到達した。ゲートウェイ自体は顧客のデータベースを保存していないが、データベースに到達するために必要な認証情報、具体的にはサービス上の任意のCosmos DBアカウントのプライマリ・アカウント・キーを取得できる署名キーを保持していた。
■Cosmos Master Key:無制限の権限を持つ単一の認証情報
Cosmos DBのプライマリキーは、関連付けられたアカウント内のすべてのデータベース、コンテナー、ドキュメントに対する完全な読み取り、書き込み、削除のアクセス権を付与する。MicrosoftのCosmos DBアクセス制御に関するドキュメントでは、マスターキートークンを「ユーザーがCosmos DBリソースを完全に制御できるようにする全アクセス権キートークン」と説明している。ゲートウェイから取得したCosmos Master Keyは、テナント、リージョン、またはアカウントがSQL、MongoDB、Cassandra、GremlinのどのAPIを使用しているかにかかわらず、任意のアカウントのプライマリキーを要求できた。
同じ認証情報は、Wizが「Config Store」と呼ぶ、サービス上のすべてのCosmos DBアカウントのディレクトリとして機能するリージョンごとのCosmos DBデータベースのロックも解除した。Config Store自体もCosmos DB SQLエンジンを使用してクエリ可能であったため、攻撃者はリージョン内のすべてのアカウントを列挙したり、AzureテナントIDやサブスクリプションIDでフィルタリングして特定の組織のデータベースを正確に特定し、Cosmos Master Keyを使用してそのプライマリキーを取得することが可能だった。WizがHackReadに語ったところによると、パブリックエンドポイントからわずか2つのステップで実行でき、出発点として必要なのは攻撃者自身のCosmos DBアカウントのみであった。
Merlin Groupの最高デジタル・情報責任者(CDIO)であるRobert Costello氏は、HackReadに対し、この発見の構造的な重要性について「すべてのCosmos DBインスタンスを同時に危険にさらす可能性のあるこの欠陥は、最大のクラウドプロバイダーであっても自身の環境を継続的にテストしなければならないことを思い起こさせるものだ」と述べている。
■顧客側の設定では防御不可能だった理由
CosmosEscapeが一般的なクラウドの脆弱性と異なるのは、Azureの顧客がこれを防ぐために構成、有効化、または無効化できる設定が何もなかったという点である。ファイアウォールルール、プライベートエンドポイント、カスタマーマネージドキーの設定、ロールベースのアクセス制御のいずれも効果がなかった。脆弱性は、顧客のアカウント設定ではなく、サービスがすべてのテナントに代わって実行するゲートウェイ層というMicrosoftの共有インフラストラクチャ内に存在していた。
これはWizの結論が指摘するアーキテクチャ上の問題である。クラウドプラットフォームは階層状に構築されており、インフラストラクチャ層の脆弱性は連鎖的に波及し、その上に構築されたすべてのサービスを脅かす可能性がある。攻撃チェーンの完全な分析から、唯一の修復パスはアーキテクチャの変更であり、それを実行できるのはMicrosoftだけであったことが明らかになっている。
■発見から修正までのタイムライン
Wizは2025年11月20日にCosmosEscapeをMicrosoftに報告し、Microsoftは同日に受領を確認した。48時間以内の11月22日までに、Microsoftは脆弱なGremlin APIのエントリポイントをブロックするホットフィックスを展開した。この対応により、Wizが発見した特定のクエリパスのさらなる悪用は防がれたが、Cosmos Master Keyの排除やゲートウェイの認証情報モデルの再構築には至らなかった。
その長期的なアーキテクチャの改修は2026年7月に完了し、MicrosoftはすべてのAzureリージョンに完全なアーキテクチャの修正を展開した。Cosmos Master KeyはCosmos DBのアーキテクチャに存在しなくなった。Microsoftはまた、より強力なサービス間認証、新しいネットワーク保護、追加の監視および検出機能を導入した。
サンドボックスの脱出を開始した細工されたGremlinクエリを含む完全なエクスプロイトチェーンは、8月6日に予定されているBlack Hat USAのブリーフィング「One Key to Rule Them All: Taking Over a Flagship Cloud Service」で発表される。この講演はBlack Hat USA 2026のブリーフィングスケジュールに記載されている。
CosmosEscapeにはCVE識別子もCVSSの深刻度スコアも付与されていない。WizとMicrosoftは、これが過去のCosmos DBの欠陥であるChaosDB(2021年)やCosMiss(2022年)とは技術的に異なることを確認している。これら過去の欠陥は、Gremlin実行エンジンではなくCosmos DBのJupyter Notebook機能に関連するものだった。
■AIによる脆弱性発見の支援
CosmosEscapeの一部は、Wizが2026年7月27日に一般公開した自律型AI脆弱性調査システム「Atlas」を使用して発見された。Atlasは単一のモデルではなく、特化したAIエージェントの協調システムとして機能する。Wizによると、AtlasはCyberGymベンチマークで90.9%の成功率を記録して1位となり、厳密に監査されたオープンソースコードから200以上の未知の脆弱性を発見している。CosmosEscapeの公開は、重要なクラウドインフラストラクチャの脆弱性発見をAtlasが支援したことが公に確認された初の事例である。
■企業にとって未解明の課題
Microsoftの公式声明は、ログの調査によりWizのテスト以外の不正なアクティビティは見つからなかったことを確認している。しかし、その調査が対象とした期間や、脆弱なGremlin実行エンジンとCosmos Master KeyのアーキテクチャがいつCosmos DBの本番環境に導入されたかは確認されていない。もしこれらのコンポーネントがGremlin APIのサポート開始時、あるいは2017年のCosmos DB自体のローンチ時から存在していたとすれば、理論的な露出期間は2025年11月の報告日が示唆するよりも長くなる。
これは、Wizが2021年のChaosDBで観察した開示パターンと似ている。TechTargetの報道では、Jupyter Notebookの欠陥が発見される数か月から数年前から存在していた可能性があると指摘されていた。MicrosoftはCosmosEscapeについて、これに相当する明確な説明を提供していない。
重要なCosmos DBワークロードを持つ企業にとって、実用的な意味合いは限定的だが重要である。Microsoftは、実施したログ調査に基づき、不正アクセスは発生していないと述べている。独自に結論を出したい顧客は、2025年11月以前の自身のCosmos DB監査ログを確認し、予期しないプライマリキーの取得、異常なデータベース列挙クエリ、見慣れない送信元IPからのアクセスなどの異常なアクセスパターンがないか調べることができる。Microsoftは、それらのログのどのようなパターンが危険信号を構成するかを特定しておらず、自社のアクセスログ調査がどの期間を対象としたかも述べていない。
■注目ポイントQ&A
●CosmosEscapeの後、Azure Cosmos DBアカウントを保護するために何かアクションを起こす必要はありますか?
いいえ。Microsoftは脆弱性を完全にパッチしており、Cosmos DBのアーキテクチャからCosmos Master Keyを排除し、追加の監視を展開しています。顧客側で必要なアクションはありません。独自のデューデリジェンスを実施したい場合は、2025年11月以前のCosmos DB監査ログを確認し、特に予期しないプライマリキーの取得や見慣れない送信元からのデータベース列挙アクティビティなどの異常なアクセスパターンがないか調べることができます。
●Gremlinのサンドボックス脱出は実際にはどのように機能したのですか?また、なぜMicrosoftの制限で防げなかったのですか?
Cosmos DBのGremlinエンジンは、グラフクエリを.NETコードにコンパイルし、制限された環境内で実行していました。制限はコードが呼び出せるGremlinの操作を対象としていましたが、コンパイル時の制限をバイパスして.NETランタイムで利用可能な任意の型やメソッドを動的に呼び出せる実行時機能である.NETリフレクションを考慮していませんでした。Wizは細工されたGremlinクエリのみを通じてファイルの読み書き機能を構築し、任意のコード実行へとエスカレーションしました。Wizの技術解説が説明しているように、サンドボックスはコードが「何をするか」を制限するだけで、基盤となるランタイムに「何を指示できるか」を制限していなかったため、不十分でした。
●なぜMicrosoft Teams、Copilot、Entra IDがアクセス可能な範囲にあった可能性があるのですか?
これらの製品は、Microsoftの内部インフラの一部としてAzure Cosmos DBにデータを保存しています。CosmosEscapeの攻撃チェーンは、サービス上の任意のCosmos DBアカウントに到達するための認証情報を保持する共有DBゲートウェイにアクセスし、さらにConfig Storeがすべてのアカウントのクエリ可能なディレクトリを攻撃者に提供したため、Microsoft自身の内部製品を支えるデータベースも、他の顧客のデータベースに到達するのと同じチェーンを通じて理論的に到達可能でした。Microsoftは、Wizの調査以外でこれらの製品のデータにアクセスされた事実はないと確認しています。
●なぜ露出期間が不明なのですか?それは企業にとって懸念すべきことですか?
MicrosoftとWizは、脆弱性が報告された時期(2025年11月)とパッチが適用された時期(Gremlinエントリポイントは2025年11月22日、アーキテクチャの修正は2026年7月)を開示しています。しかし、脆弱なGremlin実行エンジンとCosmos Master Keyのアーキテクチャがいつ本番環境に導入されたかは、どちらも開示していません。Microsoftのログ調査では不正なアクティビティは見つかりませんでしたが、その調査の対象期間も明記されていません。The Hacker Newsが報じたように、Microsoftは実際の悪用の証拠を見つけていませんが、機密性の高いCosmos DBワークロードを持ち、独自に結論を出したい企業は、2025年11月以前の期間の監査ログに異常なアクセスパターンがないか確認する必要があります。
元記事: CosmosEscape: Wiz Research Breached Azure Cosmos DB Gateway, Extracted Key to Every Database