
CVE-2026-73296向けの非破壊的セキュリティ評価ツール。公開されたMobile MCP HTTPサーバー(ポート8020/8021)上の認証境界をチェックし、不正なAndroidデバイスアクセスの可能性を検出します。
UFO-Vuln 💥
認証されていないMobile MCPアクセスにより、Android画面データが露出し、ADBを介したリモートUI制御機能が提供される可能性があります。
このリポジトリは、許可されたセキュリティ研究、脆弱性検証、防御的テスト、および管理された実験室環境のみを対象としています。
同梱のチェッカーは、非破壊的な認証境界チェックを実行するように設計されています。
以下のことは行いません:
CVE: CVE-2026-73296
製品: Microsoft UFO
コンポーネント: Mobile MCP HTTPサーバー
深刻度: Critical
CVSS v3.1: 9.4
影響を受けるバージョン: <= v3.0.7
公式にパッチ適用済みのバージョン: 本ドキュメント作成時点で、Microsoft UFOのアドバイザリによりリストされたものはありません。
CWE:
この脆弱性は、UFOのMobile MCPデータ収集サーバーおよびアクションサーバーが、適切な認証なしにネットワーク上に公開された場合に影響を及ぼします。
公式アドバイザリは、脆弱な実装を次のように特定しています:```text ufo/client/mcp/http_servers/mobile_mcp_server.py
影響を受けるサービスは、ADB接続されたAndroidデバイスと対話できるStreamable HTTP MCPインターフェースを公開します。
サービスがリモートから到達可能で、認証が強制されていない場合、認証されていないネットワーククライアントが機密のデバイス情報にアクセスし、AndroidのUI制御機能を呼び出せる可能性があります。
---
# 🎯 エグゼクティブサマリー
Microsoft UFOは、インテリジェントな自動化とマルチデバイスオーケストレーション向けに設計されたAIエージェントフレームワークです。
そのMobile MCP機能は、ADBを通じてAndroidデバイスと対話するためのMCPサーバーを提供します。
脆弱な構成では、2つの重要なネットワークサービスが公開されます:
| サービス | ポート | 機能 |
| -------------------------- | -----: | ----------------------------------- |
| Mobile Data Collection MCP | `8020` | Android情報および画面データ |
| Mobile Action MCP | `8021` | Androidの操作および制御 |
影響を受けるバージョンでは、Mobile MCPサーバーは認証プロバイダーやリクエストレベルの認可チェックなしで作成される可能性がありました。
その結果:```text
Remote Client
│
│ HTTP / MCP
▼
┌──────────────────────┐
│ Mobile MCP Server │
│ │
│ Authentication: │
└──────────┬───────────┘
│
▼
ADB Interface
│
▼
Android Device
リモートネットワーククライアントとADBバックエンド機能の間のセキュリティ境界は、したがって十分に保護されていません。
9.4 CRITICAL
ベクター:```py
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L
| メトリクス | 値 |
|---|---|
| 攻撃元(Attack Vector) | ネットワーク |
| 攻撃複雑性(Attack Complexity) | 低 |
| 必要な権限(Privileges Required) | なし |
| ユーザー操作(User Interaction) | なし |
| スコープ(Scope) | 変更なし |
| 機密性(Confidentiality) | 高 |
| 完全性(Integrity) | 高 |
| 可用性(Availability) | 低 |
この脆弱性は、悪用に以下のものが本質的に必要ないため、特に重大です。
公式アドバイザリによると、公開されたサービスに到達できるネットワーククライアントは、資格情報を提示せずにMCPセッションを初期化し、そのツールを呼び出すことができます。
公式のMicrosoft UFOセキュリティアドバイザリによると、以下が該当します。```py Affected: <= v3.0.7
Patched: None listed
The official repository currently lists `3.0.7` as a release.
> **Important:** Do not claim that `3.0.8` is an officially patched release unless Microsoft publishes that information. The official security advisory currently lists no patched version.
---
# 🏗️ Vulnerable Architecture
The vulnerable functionality is implemented in:```py
ufo/client/mcp/http_servers/mobile_mcp_server.py
公式のアドバイザリで特定された重要な機能には以下が含まれます:
create_mobile_data_collection_server capture_screenshot get_ui_tree get_device_info get_mobile_app_target_info get_app_window_controls_target_info
### モバイルアクション```py
create_mobile_action_server
tap
swipe
type_text
launch_app
press_key
click_control
2つのHTTPサービスは、以下に関連付けられています。```py TCP/8020 TCP/8021
このアドバイザリは、特にこれらのサービスをモバイルデータ収集・アクションMCPサーバーとして特定しています。
---
# 🔬 根本原因
根本的なセキュリティ問題は以下の通りです。```py
Powerful functionality
+
Network exposure
+
Missing authentication
=
Unauthorized access
影響を受ける実装では、Mobile MCP FastMCP サーバーは、認証プロバイダーや同等のリクエストレベルの認可強制なしに構築されていました。
概念的には:```python mcp = FastMCP( "Mobile MCP Server", host=host, port=port, )
問題は、単にMCPが存在することではない。
問題は、ネットワークからアクセス可能なインターフェースが、呼び出し元に認証済みの身元の確立を要求せずに、セキュリティ上重要な操作を公開していることである。
---
# 🔗 攻撃フロー
簡略化した攻撃チェーンは次のようになる:```py
┌───────────────────┐
│ Unauthenticated │
│ Network Client │
└─────────┬─────────┘
│
│ HTTP
▼
┌─────────────────────────┐
│ Mobile MCP :8020/:8021 │
│ │
│ Authentication missing │
└───────────┬─────────────┘
│
│ MCP Tool
▼
┌─────────────────────────┐
│ Mobile MCP Tool │
└───────────┬─────────────┘
│
│ ADB operation
▼
┌─────────────────────────┐
│ Android Device / ADB │
└─────────────────────────┘
重要なセキュリティ上の移行は次のとおりです。```py Unauthenticated network request ↓ MCP functionality ↓ ADB-backed action ↓ Android device
---
# 📡 公開サービス
## ポート8020 — データ収集
データ収集サーバーは、以下に関連する機能を公開する可能性があります。```py
capture_screenshot
get_ui_tree
get_device_info
get_mobile_app_target_info
get_app_window_controls_target_info
潜在的に露出する情報には以下が含まれます:
これにより、重大な機密性リスクが生じます。
アクションサーバーは、以下に関連する機能を公開します:```text tap swipe type_text launch_app press_key click_control
これらの操作により、リモートの呼び出し元にAndroid UI操作機能を提供できる可能性があります。
デバイスの状態やアクセス可能なアプリケーションによっては、これにより以下のことが可能になる可能性があります:```text
Remote input
↓
UI navigation
↓
Application interaction
↓
Device-state modification
公式のアドバイザリでは、これらの機能はリモートで注入可能なAndroid UIアクションとして具体的に説明されています。
画面およびUI情報への不正アクセスにより、以下が漏えいする可能性があります:
正確な影響は、接続されたADB環境を通じてアクセス可能なAndroidデバイスおよびアプリケーションによって異なります。
不正なモバイル操作により、攻撃者は以下を行う可能性があります:```text Tap Swipe Type text Press keys Launch applications Click UI controls
これは、デバイス上で実行中のワークフローと対話したり、アプリケーションの状態を変更したりする可能性があります。
---
# 💥 可用性への影響
自動化されたアクションを繰り返すと、以下の可能性があります:
* 自動化の中断
* アプリケーションの切り替え
* ワークフローからの離脱
* 予期しないUIアクションのトリガー
* テスト環境への干渉
* Android自動化セッションの妨害
CVSS評価では、**可用性への影響は低**と判定され、機密性と完全性は**高**と評価されています。
---
# 🧪 安全な検出
このリポジトリには以下が含まれています:```text
cve-2026-73296.py
チェッカーは意図的に非破壊的なセキュリティ評価ツールとして設計されています。
チェックする項目は以下の通りです。```text TCP reachability ↓ HTTP response ↓ Authentication boundary ↓ SAFE / VULNERABLE / UNKNOWN
**not** モバイルMCPツールを呼び出しません。
---
# 🟢 SAFE
`SAFE` の結果は、テストしたHTTPエンドポイントが、以下のような認証・認可のバリアを返したことを意味します:```text
HTTP 401
HTTP 403
例:
# 例
``````text
[SAFE] Port 8020: authentication/authorization
barrier detected
VULNERABLE の結果は、テストした HTTP エンドポイントが認証チャレンジを提示せずに正常に応答したことを意味します。
例:```text [VULNERABLE] Port 8021: HTTP endpoint responded without an authentication challenge
これは**確認が必要な潜在的な露出**として扱うべきです。
---
# 🟡 不明
`UNKNOWN` の結果は、チェッカーが認証状態を確実に判定できなかったことを意味します。
例:```text
TCP unreachable
TLS error
HTTP timeout
Unexpected HTTP response
Redirect
UNKNOWN は、安全とも脆弱とも解釈されるべきではありません。
このチェッカーは、意図的に悪用の証明を主張するものではありません。
緑の結果は、以下を意味します:
テストしたHTTP境界で認証保護が確認されました。
これは、UFOデプロイ全体が安全であることを数学的に証明するものではありません。
同様に、赤の結果は、以下を示します:
テストしたエンドポイントは、認証チャレンジなしで応答しました。
これは、以下と関連付けて確認する必要があります: