ニュース

偽アプリにトークンを渡す脆弱性、Android版Microsoft Authenticatorに

 不正なアプリが職場のアカウントのメールやファイルにアクセスできてしまう。Android版の「Microsoft Authenticator」にそんな脆弱性があった。Microsoftは9月8日(米国時間)にこの脆弱性(CVE-2026-80097)を公開し、バージョン6.2606.4246以降で修正している。今回、セキュリティ企業のEnclaveが10月23日(現地時間)にその詳細を公開した。深刻度を示すCVSSスコアは10点満点中8.6と高い。

 Microsoft Authenticatorは、多要素認証のコード生成やサインインの承認に使うアプリ。Android上では、TeamsなどのMicrosoft製アプリがそれぞれサインインする代わりに、Authenticatorがまとめてサインインして、その結果をトークンとして各アプリに渡す“ブローカー”の役割をも果たす。

 トークンは「本人確認が済んでいる」ことの証明で、アプリはこれをMicrosoftのサーバーに示すだけで、パスワード入力や多要素認証をすることなく、メールやファイルを読み書きできる。つまり、トークンが手に入ればパスワードを知らずとも、多要素認証をせずとも、他人になりすましてアカウントを利用できるのだ。

 そして今回の脆弱性の原因は、Authenticatorがトークンを渡すアプリをきちんと確かめていなかったことにある。チェックしていたのは、呼び出しアクティビティの有無と、リダイレクトURIが、要求元が名乗ったパッケージの署名から導かれるものと一致するかどうかのみで、アプリ自体が本物かどうかを確かめてはいなかった。より厳密にいえば、Authenticatorは実際には送信元アプリを認識していたが、信頼性の判断に使用しない作りだったという。攻撃者が作成したアプリが「自分はTeamsだ」と名乗ると、Authenticatorはそうだと信じる設計になっていて、そのままトークンを渡していた。

 Enclaveの検証では、Teamsになりすましてトークンを要求したところ、アクセストークンとリフレッシュトークンを平文で取得できた。これらのトークンは、メールの読み書きと送信、OneDrive/SharePointのファイル、予定表、Teamsのチャット送信などに対する委任アクセス権を持つ。さらに、Authenticator自身になりすました場合は、認証方法の変更やパスキーの作成/削除に関わる権限も得られたとしている。

 攻撃の前提は、Authenticatorに職場アカウントがサインインした端末に、悪意のあるアプリがインストールされること。それ以外にユーザーの操作は必要なかったという。このため、Android版Microsoft Authenticatorを利用しているユーザーは最新版にアップデートしておきたい。