Microsoft Authenticator 脆弱性 CVE-2026-80097(Android)は、CVSS 8.6(High) で、Microsoft が 特権昇格(Elevation of Privilege)、脆弱性タイプを CWE-287(Improper Authentication)と分類したものです。研究元の Enclave によれば、Authenticator が公開していた Android の Activity を、宣言パーミッションを一切持たないアプリが起動し、純正の Microsoft アプリになりすまして broker からトークンを受け取れたと報告されています。本記事はこれを消費者向け速報ではなく、「exported なコンポーネント+呼び出し元の認証不備」という開発者セキュリティの教材として、一次情報の範囲で整理します。
HOW IT WORKEDCVE-2026-80097(概念図)
権限ゼロのアプリが純正アプリになりすましトークンを得た
-
権限ゼロのアプリ
宣言パーミッションなし
-
公開された入口を起動
exported な Activity
-
純正アプリになりすまし
パッケージ名・署名由来の値を提示
-
broker がトークンを返す
アクセス/リフレッシュ/ID
30秒でわかる CVE-2026-80097(2026年10月26日時点)
- ・何が起きた:Authenticator が
android:exported="true"で公開していた Activity を、権限ゼロのアプリが起動できた。呼び出し元の正当性検証が不十分で、純正アプリになりすますとトークンを受け取れたと報告(CWE-287) - ・評価:CVSS 8.6(High)。Microsoft の Impact 分類は特権昇格(EoP)。研究者はトークン窃取として説明。追加の権限なしで成立しうる
- ・修正版:Microsoft Authenticator(Android)6.2606.4246 以降。それ未満が影響(版表記は情報源により差がある。後述)
- ・対象:Authenticator を入れ、業務アカウントでサインイン済みの Android 端末
まずやること
- ・個人・利用者:Google Play ストアで Microsoft Authenticator を 6.2606.4246 以降へ更新する
- ・IT 管理者・配布担当:MDM で最低バージョンを強制し、未更新端末の業務アクセスを絞る。更新の徹底を優先する
- ・アプリ開発者:自作アプリの exported コンポーネントを棚卸しし、外部へ機微を渡す経路で呼び出し元の署名を検証しているか確かめる(後述)
依存関係やプラットフォームを足がかりにする攻撃の全体像は、サプライチェーン攻撃とは|手口・防御ツール比較・npm 12の新機構まで実践解説にまとめています。
Microsoft Authenticator 脆弱性 CVE-2026-80097 の時系列
タイムライン(確認できた範囲)
| 時期 | 出来事 | 出典 |
|---|---|---|
| 公表前 | 研究元 Enclave(研究者 Ofek Levin)が「AuthMask」として報告。Microsoft が修正版 6.2606.4246 を提供 | Enclave AuthMask |
| 2026-09-08 | MSRC が CVE-2026-80097 のアドバイザリを公表(9月の月例の一部) | MSRC アドバイザリ |
| 2026-09-24 | NVD のエントリが更新・分析済みに | NVD |
報告日と修正提供日の正確な日付は、本記事が確認できた一次・二次情報の範囲では特定しきれませんでした。ここでは「調整して公表された(coordinated disclosure)」という枠組みと、公表日・修正版だけを確定事項として扱います。進行中の悪用については、CISA の KEV(Known Exploited Vulnerabilities)カタログに本 CVE の登録は確認されていません。
THE SCALE数字で見る CVE-2026-80097
追加の権限なしで成立しうると評価された
8.6
CVSS 基本値(High)
Microsoft 分類は EoP/CWE-287
0権限
攻撃アプリに必要な権限
宣言パーミッションなし
3種類
受け取れたトークン
アクセス/リフレッシュ/ID
Microsoft の分類と研究者の説明は食い違って見える
同じ事象でも、ベンダーと研究者で言葉の枠組みが違います。ここを混ぜると誤解します。
| 観点 | Microsoft(MSRC) | 研究者(Enclave) |
|---|---|---|
| 位置づけ | Impact は特権昇格(Elevation of Privilege) | 権限ゼロのアプリによるトークン窃取 |
| 脆弱性タイプ | CWE-287(Improper Authentication) | 呼び出し元の正当性検証の不備 |
| 評価 | CVSS 8.6(High) | 端末上のローカルな攻撃として説明 |
Microsoft は具体的なコードレベルの欠陥を公表していません。コンポーネント名や「なりすまし」の仕組みは研究元 Enclave の報告に基づくもので、本記事もその範囲を超えて原因を断定しません。
Microsoft Authenticator 脆弱性の根因|exported な Activity と呼び出し元の認証不備
Enclave の報告によれば、Microsoft Authenticator は com.microsoft.identity.client.AccountChooserActivity という Activity を :auth プロセスで、android:exported="true" として公開していました。Android では exported なコンポーネントは、端末上の任意のアプリから起動できます。
問題は、この入口が呼び出し元を正当なものと前提していた点です。報告では、攻撃アプリが端末にインストール済みの純正 Microsoft アプリの名前を挙げ、その公開パッケージ情報と署名由来の値を取得して提示することで、検証を満たせたとされます。すると broker(認証仲介)の応答に、アクセストークン・リフレッシュトークン・ID トークン・クライアント情報が可読な形で含まれ得たと報じられています。攻撃アプリ側に宣言パーミッションは要りません。
なりすます純正クライアントを変えると、認証方式やパスキー操作に関わるスコープなど、異なる権限のトークンが得られたという指摘もあります。CWE-287 が示すのは、まさにこの「呼び出し元を正しく認証しないまま機微を渡した」構図です。
本記事が扱わないこと
攻撃は「exported な Activity を任意のアプリが起動 → 純正アプリになりすまし → broker がトークンを渡す」という概念レベルにとどめます。なりすましの具体的な手順・値の作り方・PoC(概念実証コード)は掲載しません。事実関係は MSRC のアドバイザリと Enclave の技術解説に基づきます。
対策|6.2606.4246 以降へ更新し、配布を管理する
最優先は更新です。影響を受けるかは端末上の Authenticator の版で決まります。
・利用者:Google Play ストアを開き、Microsoft Authenticator を 6.2606.4246 以降へ更新する
・IT 管理者:MDM(Intune など)で Authenticator の最低バージョンを強制し、満たさない端末の業務アクセスを制限する
・更新後の確認:過去のトークン窃取を事後に検知する公開手順は本記事の時点で示されていない。気になる場合はサインインログの監視と、必要に応じたセッション無効化で封じ込める
回避策(exported を無効化するなどの利用者側の緩和)は現実的でないため、修正版への更新が唯一の確実な手当てになります。
自システムの確認|版の確認と exported コンポーネントの棚卸し
利用者・IT 向けには、端末の Authenticator の版を確かめます。アプリ内の設定画面か Play ストアの表示で版を見られます。開発用に端末がつながっていれば、次でも版を取れます(パッケージ名は com.azure.authenticator)。
# 端末の Microsoft Authenticator の版を確認する(Android 端末が必要)
adb shell dumpsys package com.azure.authenticator | grep versionName
アプリ開発者は、自作アプリが外部へ公開しているコンポーネントを棚卸しします。マニフェストの android:exported の宣言と、ADB からの見え方の両方を確かめます。
# 自作アプリの exported コンポーネントを一覧で確認する(<your.package> は自分のパッケージ名に置き換える)
adb shell dumpsys package your.package.name | grep -i -E "exported|Activity Resolver|filter"
この手順の読み方
上は版と構成の確認であって、侵害の有無の判定ではありません。版が修正前でも、業務アカウント未サインインなら窃取の前提は揃いません。逆に版を上げても、過去に窃取が起きていないことをこのコマンドは保証しません。exported の棚卸しも「公開されている事実」を見るだけで、呼び出し元検証の有無までは表示しません。実際の検証ロジックはアプリのコードで確かめます。
影響範囲|業務アカウントと MSAL broker に依存する組織
影響を受けるのは、Authenticator を入れ、業務アカウントでサインイン済みの Android 端末です。Authenticator は多くの組織で MSAL(Microsoft Authentication Library)の broker として働き、他アプリの SSO を仲介します。したがって、broker 経由の SSO に依存する組織やアプリほど、トークンが外部アプリへ渡った場合の波及が大きくなります。
消費者個人アカウントへの影響の有無は、本記事が確認できた一次情報の範囲では明確に切り分けられていません。報告・報道はいずれも業務(work)アカウントを主たる前提に説明しています。ここは断定せず、組織の work アカウントを優先して手当てするのが妥当です。
Android アプリのトークン窃取という点では、OpenAI Codexを狙うnpmサプライチェーン攻撃|codexui-android偽パッケージの検知と対応も同じ系統の被害を扱っています。窃取されたトークンを多層で止める設計は、トークン窃取を多層で止める——セッション・AI推論・課金まで含めた防御パターンにまとめています。
開発者の教訓|exported コンポーネントと呼び出し元の署名検証
この一件はクローズドソースの MFA アプリの話に見えて、Android アプリを作る側に直に効く教材です。
THE LESSON欠けていた検証とあるべき検証
外部に機微を渡すなら呼び出し元の正当性を確かめる
欠けていた検証
CWE-287 Improper Authentication
- 呼び出し元を正当と前提
- パッケージ名だけで満たせる値
- 外部アプリに broker 応答を渡した
あるべき検証
呼び出し元の正当性を確認
- exported が本当に要るか見直す
- 署名(証明書)まで照合する
- 機微な応答は内部プロセスに限定
教訓は三つです。
・exported は「任意のアプリから起動される」前提で設計する。intent-filter を付けただけで暗黙に exported になる Activity もある。本当に外部公開が要るかをまず見直す
・呼び出し元はパッケージ名だけで信頼しない。パッケージ名は騙れる。broker のように機微を渡す処理では、呼び出し元の署名(証明書)まで照合する
・機微な応答は外に出さない。トークンのような情報は、外部プロセスへ渡すのではなく内部に閉じ、どうしても渡すなら受け手を厳密に限定する
認証や認可の「呼び出し元を信じすぎる」設計ミスは Android 固有ではありません。サーバー側で認可チェックが素通りする例として、next-auth 脆弱性|認可チェックがfail-openするGHSA2件、v5ベータが対象も、前提を検証しないと機微が漏れるという同じ構図です。
まとめ
この記事の結論
- ・利用者・IT は更新で守れる:Microsoft Authenticator(Android)を 6.2606.4246 以降へ。業務アカウント利用者は MDM で徹底する
- ・開発者は呼び出し元を検証する:exported コンポーネントは任意のアプリから起動される前提で、機微を渡す経路は署名まで照合する
参照ソース
・MSRC アドバイザリ CVE-2026-80097(Microsoft Authenticator Elevation of Privilege Vulnerability) — CVSS 8.6・CWE-287・影響分類(2026-10-26確認)
・Enclave: AuthMask — We Made Microsoft Authenticator Hand Over Tokens to an App With Zero Permissions — exported Activity・なりすまし・トークンの種類・修正版の技術解説(2026-10-26確認)
・NVD: CVE-2026-80097 — 影響製品と版情報(版表記の差異あり。2026-10-26確認)





