
Nicht-destruktives Sicherheitsbewertungstool für CVE-2026-73296, das Authentifizierungsgrenzen auf exponierten Mobile-MCP-HTTP-Servern (Ports 8020/8021) prüft, um potenziellen unbefugten Zugriff auf Android-Geräte zu erkennen.
UFO-Vuln 💥
Unautorisierter mobiler MCP-Zugriff kann Android-Bildschirmdaten offenlegen und über ADB Fernsteuerungsfunktionen für die Benutzeroberfläche bereitstellen.
Dieses Repository ist ausschließlich für autorisierte Sicherheitsforschung, Schwachstellenvalidierung, defensive Tests und kontrollierte Laborumgebungen bestimmt.
Der enthaltene Prüfer ist für die Durchführung nicht-destruktiver Authentifizierungsgrenzprüfungen konzipiert.
Er führt nicht Folgendes aus:
CVE: CVE-2026-73296
Produkt: Microsoft UFO
Komponente: Mobile MCP HTTP-Server
Schweregrad: Kritisch
CVSS v3.1: 9.4
Betroffene Versionen: <= v3.0.7
Offiziell gepatchte Versionen: Zum Zeitpunkt dieser Dokumentation sind vom Microsoft-UFO-Advisory keine aufgeführt.
CWE:
Die Schwachstelle betrifft UFOs mobile MCP-Datenerfassungs- und Aktionsserver, wenn diese ohne entsprechende Authentifizierung über ein Netzwerk bereitgestellt werden.
Das offizielle Advisory identifiziert die anfällige Implementierung wie folgt:```text ufo/client/mcp/http_servers/mobile_mcp_server.py
Die betroffenen Dienste legen Streamable-HTTP-MCP-Schnittstellen offen, die mit einem über ADB verbundenen Android-Gerät interagieren können.
Wenn die Dienste remote erreichbar sind und keine Authentifizierung erzwungen wird, kann ein nicht authentifizierter Netzwerkclient möglicherweise auf sensible Geräteinformationen zugreifen und Funktionen zur Android-UI-Steuerung aufrufen.
---
# 🎯 Zusammenfassung
Microsoft UFO ist ein KI-Agenten-Framework, das für intelligente Automatisierung und Multi-Geräte-Orchestrierung entwickelt wurde.
Seine Mobile-MCP-Funktionalität stellt MCP-Server für die Interaktion mit Android-Geräten über ADB bereit.
Die anfällige Konfiguration legt zwei wichtige Netzwerkdienste offen:
| Dienst | Port | Funktion |
| ----------------------------- | -----: | ----------------------------------- |
| Mobile Data Collection MCP | `8020` | Android-Informationen und Bildschirmdaten |
| Mobile Action MCP | `8021` | Android-Interaktion und -Steuerung |
In betroffenen Versionen konnten die Mobile-MCP-Server ohne einen Authentifizierungsanbieter oder eine Autorisierungsprüfung auf Anfrageebene erstellt werden.
Folglich:```text
Remote Client
│
│ HTTP / MCP
▼
┌──────────────────────┐
│ Mobile MCP Server │
│ │
│ Authentication: │
└──────────┬───────────┘
│
▼
ADB Interface
│
▼
Android Device
The security boundary between the remote network client and the ADB-backed functionality is therefore insufficiently protected.
9.4 CRITICAL
Vektor:```py
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L
Die Schwachstelle ist besonders bedeutsam, da eine Ausnutzung grundsätzlich nicht erfordert:
Das offizielle Advisory besagt, dass ein Netzwerkclient, der den exponierten Dienst erreichen kann, eine MCP-Sitzung initialisieren und deren Tools aufrufen kann, ohne eine Anmeldeinformation vorzulegen.
Gemäß dem offiziellen Microsoft-UFO-Sicherheitsadvisory:```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
Wichtige Funktionen, die durch die offizielle Sicherheitsmeldung identifiziert wurden, umfassen:
create_mobile_data_collection_server capture_screenshot get_ui_tree get_device_info get_mobile_app_target_info get_app_window_controls_target_info
### Mobile-Aktionen```py
create_mobile_action_server
tap
swipe
type_text
launch_app
press_key
click_control
Die beiden HTTP-Dienste sind verknüpft mit:```py TCP/8020 TCP/8021
Die Beratungshinweise identifizieren diese Dienste ausdrücklich als die MCP-Server für mobile Datenerfassung und -aktionen.
---
# 🔬 Grundursache
Das grundlegende Sicherheitsproblem ist:```py
Powerful functionality
+
Network exposure
+
Missing authentication
=
Unauthorized access
Bei der betroffenen Implementierung wurden die Mobile-MCP-FastMCP-Server ohne einen Authentifizierungsanbieter oder eine gleichwertige Durchsetzung der Autorisierung auf Anfrageebene erstellt.
Konzeptionell:```python mcp = FastMCP( "Mobile MCP Server", host=host, port=port, )
Das Problem ist nicht einfach die Existenz von MCP.
Das Problem ist, dass eine netzwerkzugängliche Schnittstelle sicherheitskritische Operationen offenlegt, ohne dass der Aufrufer eine authentifizierte Identität herstellen muss.
---
# 🔗 Angriffsablauf
Eine vereinfachte Angriffskette sieht wie folgt aus:```py
┌───────────────────┐
│ Unauthenticated │
│ Network Client │
└─────────┬─────────┘
│
│ HTTP
▼
┌─────────────────────────┐
│ Mobile MCP :8020/:8021 │
│ │
│ Authentication missing │
└───────────┬─────────────┘
│
│ MCP Tool
▼
┌─────────────────────────┐
│ Mobile MCP Tool │
└───────────┬─────────────┘
│
│ ADB operation
▼
┌─────────────────────────┐
│ Android Device / ADB │
└─────────────────────────┘
Der wichtige Sicherheitsübergang ist:```py Unauthenticated network request ↓ MCP functionality ↓ ADB-backed action ↓ Android device
---
# 📡 Exponierte Dienste
## Port 8020 — Datenerfassung
Der Datenerfassungsserver kann Funktionalität bereitstellen, die mit Folgendem verbunden ist:```py
capture_screenshot
get_ui_tree
get_device_info
get_mobile_app_target_info
get_app_window_controls_target_info
Potentiell exponierte Informationen umfassen:
Dies stellt ein erhebliches Vertraulichkeitsrisiko dar.
Der Aktionsserver legt Funktionen offen, die mit Folgendem verbunden sind:```text tap swipe type_text launch_app press_key click_control
Diese Operationen können einem entfernten Aufrufer Fähigkeiten zur Interaktion mit der Android-Benutzeroberfläche bieten.
Abhängig vom Gerätezustand und den zugänglichen Anwendungen kann dies möglicherweise Folgendes ermöglichen:```text
Remote input
↓
UI navigation
↓
Application interaction
↓
Device-state modification
Die offizielle Sicherheitsempfehlung beschreibt diese Fähigkeiten ausdrücklich als remote injizierbare Android-UI-Aktionen.
Unbefugter Zugriff auf Bildschirm- und UI-Informationen kann möglicherweise Folgendes offenlegen:
Die genauen Auswirkungen hängen vom Android-Gerät und den Anwendungen ab, die über die verbundene ADB-Umgebung zugänglich sind.
Unbefugte mobile Aktionen könnten es einem Angreifer ermöglichen:```text Tap Swipe Type text Press keys Launch applications Click UI controls
Dies kann potenziell den Anwendungszustand verändern oder mit Workflows interagieren, die auf dem Gerät ausgeführt werden.
---
# 💥 Auswirkung auf die Verfügbarkeit
Wiederholte automatisierte Aktionen könnten:
* Automatisierung unterbrechen
* Anwendungen wechseln
* Von Workflows wegnavigieren
* Unerwartete UI-Aktionen auslösen
* Testumgebungen stören
* Eine Android-Automatisierungssitzung unterbrechen
Die CVSS-Bewertung weist eine **geringe Auswirkung auf die Verfügbarkeit** zu, während Vertraulichkeit und Integrität als **hoch** bewertet werden.
---
# 🧪 Sichere Erkennung
Dieses Repository enthält:```text
cve-2026-73296.py
Der Checker ist bewusst als nicht-destruktives Sicherheitsbewertungswerkzeug konzipiert.
Er prüft:```text TCP reachability ↓ HTTP response ↓ Authentication boundary ↓ SAFE / VULNERABLE / UNKNOWN
Es ruft **nicht** Mobile-MCP-Tools auf.
---
# 🟢 SICHER
Ein `SICHER`-Ergebnis bedeutet, dass der getestete HTTP-Endpunkt eine Authentifizierungs-/Autorisierungsbarriere wie z. B. Folgendes zurückgegeben hat:```text
HTTP 401
HTTP 403
Beispiel:```text [SAFE] Port 8020: authentication/authorization barrier detected
---
# 🔴 VERWUNDBAR
Ein `VERWUNDBAR`-Ergebnis bedeutet, dass der getestete HTTP-Endpunkt erfolgreich geantwortet hat, ohne eine Authentifizierungsaufforderung zu präsentieren.
Beispiel:```text
[VULNERABLE] Port 8021:
HTTP endpoint responded without an authentication challenge
Dies sollte als potenzielle Gefährdung behandelt werden, die eine Bestätigung erfordert.
Ein UNKNOWN-Ergebnis bedeutet, dass der Prüfer den Authentifizierungsstatus nicht zuverlässig bestimmen konnte.
Beispiele:```text TCP unreachable TLS error HTTP timeout Unexpected HTTP response Redirect
`UNKNOWN` sollte weder als sicher noch als verwundbar interpretiert werden.
---
# ⚠️ Erkennungsgrenzen
Dieser Checker erhebt bewusst **nicht** den Anspruch, eine Ausnutzung zu beweisen.
Ein grünes Ergebnis bedeutet:
> An der getesteten HTTP-Grenze wurde ein Authentifizierungsschutz beobachtet.
Es beweist mathematisch **nicht**, dass die gesamte UFO-Bereitstellung sicher ist.
Ebenso weist ein rotes Ergebnis darauf hin:
> Der getestete Endpunkt antwortete ohne eine Authentifizierungsherausforderung.
Es sollte korreliert werden mit:
* UFO-Version
* Bereitstellungskonfiguration
* Netzwerkexposition
* MCP-Konfiguration
* Reverse-Proxys
* TLS-Konfiguration
* Firewall-Regeln
* ADB-Konnektivität
---
# 🚀 Verwendung
Klonen Sie das Repository:```bash
git clone https://github.com/0xBlackash/CVE-2026-73296.git
cd CVE-2026-73296
Installiere die Abhängigkeit:```bash python3 -m pip install requests
Syntax check:```bash
python3 -m py_compile cve-2026-73296.py
Führen Sie es gegen ein autorisiertes Testsystem aus:```bash python3 cve-2026-73296.py 127.0.0.1
Beispiel-Laborziel:```bash
python3 cve-2026-73296.py 192.168.56.10
Für HTTPS mit einem Labor-/selbstsignierten Zertifikat:```bash python3 cve-2026-73296.py https://192.168.56.10 --no-verify-tls
---
# 🖥️ Beispielausgabe
### Geschützter Endpunkt```py
════════════════════════════════════════════════════════
SECURITY ASSESSMENT
────────────────────────────────────────────────────────
SAFE : 2
VULNERABLE : 0
UNKNOWN : 0
✓ AUTHENTICATION CHECK PASSED
════════════════════════════════════════════════════════ SECURITY ASSESSMENT ────────────────────────────────────────────────────────
SAFE : 0 VULNERABLE : 2 UNKNOWN : 0
⚠ POTENTIAL CVE-2026-73296 EXPOSURE
→ TCP/8020 responded without an authentication challenge. → TCP/8021 responded without an authentication challenge.
<img width="1523" height="789" alt="CVE-2026-73296" src="https://assets.kitploit.com/production/public/readmes/54023/5754c6ba111148250c8f3067db1c7dfbb9cb85e4910f2afe13443f7906926573/def8f2a924188fdd01d3ef2b3880c3bc22bef0c251f9b13d24ac458f2143f3eb-display-v1.webp" />
---
# 🧬 Source-to-Sink-Modell
Die Schwachstelle lässt sich als ein Source-to-Sink-Sicherheitsfehler verstehen:```py
SOURCE
│
│ Unauthenticated network request
▼
MCP HTTP Server
│
│ Missing authentication/authorization
▼
MCP Tool
│
▼
ADB-backed operation
│
▼
ANDROID DEVICE
Die beabsichtigte Sicherheitsgrenze sollte stattdessen wie folgt aussehen:```py Network Request │ ▼ Authentication │ ├──── INVALID ────► REJECT │ ▼ Authorization │ ├──── DENIED ─────► REJECT │ ▼ MCP Tool │ ▼ ADB
---
# 🔐 Empfohlene Behebung
Die primäre Behebung besteht darin, die Authentifizierung an der Grenze des Mobile MCP HTTP-Transports durchzusetzen.
Empfohlene Sicherheitsarchitektur:```py
┌──────────────────┐
│ Authorized MCP │
│ Client │
└────────┬─────────┘
│
Bearer Token
│
▼
┌──────────────────┐
│ Authentication │
│ Middleware │
└────────┬─────────┘
│
Authorized?
/ \
NO YES
│ │
▼ ▼
REJECT MCP Tool
│
▼
ADB
Die offizielle Empfehlung sieht ein Authentifizierungsdesign vor, das auf Folgendem basiert:```py UFO_MCP_API_KEY
Das Sicherheitsmodell sollte Folgendes sicherstellen:
1. Ein Geheimnis mit hoher Entropie ist erforderlich.
2. Der Server schlägt fehl und verweigert den Zugriff, wenn die Anmeldedaten fehlen.
3. Ungültige Bearer-Anmeldedaten werden abgelehnt.
4. Die Authentifizierung erfolgt vor der Ausführung des Tools.
5. Anmeldedaten werden nicht als für LLM sichtbare Tool-Parameter offengelegt.
6. Der Vergleich von Anmeldedaten sollte mit konstantem Zeitaufwand erfolgen.
7. Remote-Bereitstellungen sollten verschlüsselte Übertragung verwenden.
8. Localhost sollte, wo möglich, die Standardeinstellung bleiben.
---
# 🌐 Netzwerk-Exposition
Vermeiden Sie die Offenlegung von:```py
0.0.0.0:8020
0.0.0.0:8021
direkt mit nicht vertrauenswürdigen Netzwerken verbunden.
Bevorzugen Sie:```py 127.0.0.1
für rein lokale Bereitstellungen.
Für legitimen Fernzugriff erwägen Sie:```py
Client
│
▼
TLS / Private Tunnel
│
▼
Authenticated Reverse Proxy
│
▼
UFO MCP
│
▼
ADB
Mögliche Sicherheitskontrollen umfassen:
Eine ordnungsgemäße Sicherheits-Regressionssuite sollte Folgendes überprüfen:
Request ↓ No Authorization header ↓ REJECT ↓ ADB not reached
Erwartet:```py
PASS
Bearer: invalid-token ↓ REJECT ↓ ADB not reached
Erwartet:```py
PASS
Bearer: valid-token ↓ ACCEPT ↓ MCP Tool ↓ ADB
Erwartet:```py
PASS
UFO_MCP_API_KEY = missing
Erwartet:```py
Server fails closed
Nicht aufgelöste Umgebungsvariablen sollten nicht versehentlich zu Authentifizierungs-Anmeldedaten werden.
Erwartet:```py Client initialization fails
---
# 🛡️ Verteidigung in der Tiefe
Die Authentifizierung allein sollte nicht als ausreichend betrachtet werden.
Empfohlene Kontrollen:```py
Internet
│
X
│
Firewall/VPN
│
▼
TLS / Proxy
│
▼
API Authentication
│
▼
Authorization
│
▼
MCP Server
│
▼
ADB
│
▼
Android Device
Sicherheitsteams sollten auf unerwarteten Zugriff auf Folgendes achten:
---```text TCP/8020 TCP/8021
Achten Sie auf:
* Unerwartete Quell-IP-Adressen
* Anfragen ohne Autorisierungs-Header
* Wiederholte Authentifizierungsfehler
* Ungewöhnliche MCP-Sitzungen
* Unerwartete Screenshot-Anfragen
* Wiederholte UI-Interaktionsaufrufe
* Unerwartete Anwendungsstarts
* Verdächtige ADB-Aktivität
Nützliche Netzwerktelemetrie:```text
source_ip
destination_ip
destination_port
timestamp
HTTP_method
HTTP_status
user_agent
authorization_present
request_frequency
Wenn eine exponierte, verwundbare Instanz entdeckt wird:
Den Zugriff sofort begrenzen auf:```text 8020 8021
### 2. Nicht benötigte Android-Geräte trennen
Wenn der Dienst nicht benötigt wird, trennen Sie das zugehörige ADB-Gerät.
### 3. Protokolle untersuchen
Achten Sie auf:```text
Unknown source IPs
Unexpected MCP sessions
Unexpected device interactions
Unexpected application launches
Falls Authentifizierungsgeheimnisse möglicherweise offengelegt wurden:```text Generate a new high-entropy API key
### 5. Gerätezustand überprüfen
Prüfen:
* Kürzlich gestartete Anwendungen
* Geänderter Anwendungszustand
* Unerwartete Nachrichten/Eingaben
* Verdächtige UI-Aktivität
### 6. Sicherheitshinweise des Herstellers aktualisieren oder anwenden
Befolgen Sie die neuesten Microsoft-UFO-Sicherheitshinweise und Versionsinformationen.
### 7. Erneut testen
Führen Sie den sicheren Checker nach der Behebung erneut aus.
---
# 🧰 Forschungsmethodik
Dieses Projekt folgt einer defensiven Methodik zur Validierung von Schwachstellen:```py
1. Identify vulnerable component
↓
2. Determine network attack surface
↓
3. Identify missing security boundary
↓
4. Map exposed capabilities
↓
5. Build non-destructive detection
↓
6. Validate authentication behavior
↓
7. Document impact
↓
8. Apply remediation
↓
9. Regression test
Empfohlene Projektstruktur:```py CVE-2026-73296/ │ ├── README.md │ ├── poc/ │ └── cve-2026-73296.py │ ├── docs/ │ ├── technical-analysis.md │ ├── remediation.md │ └── detection.md │ ├── screenshots/ │ ├── safe.png │ └── vulnerable.png │ ├── tests/ │ └── README.md │ ├── LICENSE └── .gitignore
---
# 🧠 Wichtige Sicherheitslektionen
## 1. MCP ist eine Sicherheitsgrenze
MCP-Server sollten nicht als harmlose lokale Hilfsprogramme behandelt werden, wenn sie leistungsstarke Operationen über ein Netzwerk bereitstellen.
---
## 2. ADB verstärkt die Auswirkungen
Ein MCP-Endpunkt, der mit ADB verbunden ist, kann zu einer Brücke zwischen:```text
Network
↓
Agent protocol
↓
ADB
↓
Android
Die Sicherheitsanforderungen müssen daher die gesamte Kette abdecken.
Ein Dienst, der gebunden ist an:```text 127.0.0.1
hat ein grundlegend anderes Gefährdungsprofil als:```text
0.0.0.0
Netzwerkbindung sollte daher als Sicherheitskonfiguration behandelt werden.
Die kritische Invariante ist:```text UNTRUSTED REQUEST ↓ AUTHENTICATION ↓ AUTHORIZATION ↓ MCP TOOL ↓ ADB
Never:```text
UNTRUSTED REQUEST
↓
MCP TOOL
↓
ADB
CVE-2026-73296 verdeutlicht das Sicherheitsrisiko, das entsteht, wenn leistungsstarke Agenten-Automatisierungsschnittstellen ohne eine angemessene Authentifizierungs- und Autorisierungsgrenze über ein Netzwerk bereitgestellt werden.
Die anfällige Mobile-MCP-Architektur schafft einen Pfad von:```text Unauthenticated Network Client ↓ MCP Server ↓ MCP Tools ↓ ADB ↓ Android Device
Die daraus resultierenden Auswirkungen können sowohl einen **Verlust der Vertraulichkeit** durch Bildschirm-/UI-/Geräteinformationen als auch eine **Integritätsbeeinträchtigung** durch die Ferninteraktion mit der Android-Benutzeroberfläche umfassen.
Die wichtigsten defensiven Kontrollen sind:```text
Authentication
Authorization
TLS
Network isolation
Least privilege
Secure defaults
Continuous monitoring
Regression testing
Offizielles Microsoft-UFO-Repository:
https://github.com/microsoft/UFO
Offizieller Sicherheitshinweis:
https://github.com/microsoft/UFO/security/advisories/GHSA-24fq-m9rr-g3mm
Dieses Projekt wird bereitgestellt für:
Testen Sie keine Systeme oder Geräte ohne ausdrückliche Genehmigung.
Der sichere Prüfer führt die verwundbaren Mobile-MCP-Funktionen absichtlich nicht gegen echte Android-Geräte aus.
CVE-2026-73296 • Microsoft UFO • Mobile-MCP-Sicherheitsforschung
| Metrik | Wert |
|---|
| Angriffsvektor | Netzwerk |
| Angriffskomplexität | Niedrig |
| Erforderliche Rechte | Keine |
| Benutzerinteraktion | Keine |
| Auswirkungsbereich | Unverändert |
| Vertraulichkeit | Hoch |
| Integrität | Hoch |
| Verfügbarkeit | Niedrig |
| Eigenschaft | Wert |
|---|
| CVE | CVE-2026-73296 |
| Produkt | Microsoft UFO |
| Komponente | Mobile MCP |
| Schweregrad | Kritisch |
| CVSS | 9.4 |
| Angriffsvektor | Netzwerk |
| Komplexität | Niedrig |
| Privilegien | Keine |
| Benutzerinteraktion | Keine |
| Vertraulichkeit | Hoch |
| Integrität | Hoch |
| Verfügbarkeit | Niedrig |
| CWE-306 | Fehlende Authentifizierung |
| CWE-862 | Fehlende Autorisierung |
| Daten-MCP | TCP/8020 |
| Aktions-MCP | TCP/8021 |
| Betroffen | ≤ v3.0.7 |
| Offiziell gepatchte Version | Keine angegeben |