スクープ:たった1行のコードが、Microsoft Androidアプリ数十億ダウンロードをリスクにさらした経緯

6つのMicrosoft 365 Androidアプリに同一の欠陥が存在し、数十億件のダウンロードが危険にさらされる可能性がありました。

この調査結果は、火曜日に予定されている研究の公開発表に先立ち、SecurityWeekに独占提供されたものです。発見したのは、AIを活用した脆弱性発見ツール「Enclave」です。問題の本質は、Word、PowerPoint、Excel、Microsoft 365 Copilot、Microsoft Loop、そしてAndroid版OneNoteの本番コードにデバッグフラグが残されていたという、ただそれだけのことです。誰かが本番環境でデバッグモード(IsDebugMode(true))を有効のままにしていたのです。このフラグは6つのアプリすべてで有効になっていましたが、TeamsなどほかのMicrosoft(MS)アプリでは有効になっておらず、それらは今回の悪用による影響を受けませんでした。

デバッグフラグの影響はさまざまです。単純にログ出力やテスト出力に影響するだけのケースもあります。しかし今回は違いました。「このフラグは、アカウントのアクセストークン共有に関する動作を変えてしまいました」とEnclaveは調査結果の中で説明しています。「デバッグモードが有効になっていたため、信頼できないアプリがトークンを受け取れないようにすべき保護機能がスキップされていたのです。」

Microsoftの本来の意図は、認証済みのユーザーが同一デバイス上でMSアプリ間をシームレスに移動できるよう、Androidユーザーが毎回ログイン認証をしなくて済むようにすることです。そのため、アプリのコードはほかのMSアプリにアクセストークンを渡す設計になっています。ただし重要な点として、MS以外のAndroidアプリには渡さないよう制限されているはずでした。ところがこのデバッグフラグによってMS以外のアプリへの制限が解除され、その結果、AndroidのMSアクセストークンが要求した任意のAndroidアプリに手渡されてしまう状態になっていました。

この欠陥を悪用するには、MSへのアクセスを要求するコードを書くだけで十分です。独立したアプリとして作成することも、改ざんされたAndroidアプリ内にコードを埋め込むことも可能です。唯一の条件は、そのアプリをできるだけ多くのAndroidデバイスにインストールさせることだけです。

「攻撃者はたった15行のコードを書くだけでいいのです。MSアプリへのアクセスを要求すれば、トークンが渡されます」と、EnclaveのCPO兼共同創業者であるYanir Tsarimi氏は説明します。「本来あるべき機能をそのまま使っているだけですから、これ以上シンプルな攻撃はありません。」

問題の本質は、アクセストークンを渡すこと自体にあるのではなく、その受け渡しをAndroidデバイスにインストールされた他のMSアプリからのリクエストに限定するはずのデバッグ行が残されていたことにあります。「単純なミスですが、この場合は非常に深刻です。」たったひとつのミスが、合計数十億ダウンロードにのぼるアプリに影響を与えた可能性があります。

Tsarimi氏は具体的な悪用シナリオを示しました。「たとえばあなたが自動アップデート機能を持つモバイルゲームの開発者で、1万人のユーザーを抱えているとします。影響を受けるMSアプリへのアクセスを求める悪意あるコードを書き、1万人のユーザーに配信するアップデートに組み込みます。自動アップデートによってそれがインストールされると、悪意あるコードはユーザーのAndroid上のMSアプリに密かにアクセスを要求し、トークンを受け取り、静かにあなたの元へ送り返すのです。」

このような場合、被害者は何も気づかないかもしれません。しかし攻撃者はトークンを手に入れます。「アプリの所有者はそのトークンを使って何でもできます」とTsarimi氏は付け加えます。「本質的にはサプライチェーン攻撃ですが、異なる角度からのものです。」

レポートでも確認されているとおり、ユーザーには何も見えません。「しかし攻撃者側から見ると、そのトークンはMicrosoftアカウントを通じて行動し、トークンを渡したアプリにアクセスするには十分でした。[MSの6つすべての] AndroidアプリでこのIssueを確認しています。」 

トークンの悪用可能性は甚大です。これらはMicrosoftのFOCIトークンであり、誰にも気づかれることなく長期間にわたって再利用・更新が可能です。「攻撃者が制御するアプリは、影響を受けるアプリのコンテキストを通じて公開されたMicrosoftアカウントデータへの完全なアクセス権を取得できます」とEnclaveは警告しています。「メール、ファイル、ドキュメント、通信内容、カレンダー情報などが対象となります。さらに攻撃者は、機密情報の読み取り、ドキュメントの改ざん、またはトークンが公開するアクセス権を悪用したなりすまし通信も行える可能性があります。」

EnclaveはこれらをMicrosoftに報告し、すべてが迅速に確認されました。Microsoftは欠陥を修正し、5月12日にCVE番号CVE-2026-41100、-41101、-41102を発行しました。関連するパッチはPatch Tuesdayの仕組みを通じて配布されましたが、-41102(Android版PowerPointの脆弱性)については、同じく5月12日に修正済みビルドとしてGoogle Playストアにも直接配信されました。

Androidユーザーは、パッチを最新の状態に保っていれば、現在は安全です。

「私たちはMSRC(Microsoft Security Response Center)に問題を報告し、すべてが確認・修正されました」とEnclaveは締めくくっています。「しかし重要なのはここです。開発用の設定が複数の主要アプリの本番環境に入り込み、アカウントアクセスを保護するシステムの動作を変えてしまいました。これは偶発的には起こりにくいはずのことです。今回は、十分に防ぐことができませんでした。」

翻訳元: https://www.securityweek.com/exclusive-how-one-line-of-code-put-billions-of-microsoft-android-app-downloads-at-risk/

ソース: securityweek.com