Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with valid Mobile MCP API key
-
DeliveryCall launch_app/type_text with crafted package_name/text
-
ExploitADB joins args into shell command string
-
ExecutionAndroid shell reparses injected metacharacters
-
ImpactExecute arbitrary commands as Android shell user
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires three concrete prerequisites stated in the advisory: (1) a valid Mobile MCP API key to authenticate to the Mobile MCP server; (2) an Android device that is reachable and already authorized for ADB and connected to that server; and (3) UFO prior to 3.0.10 exposing the vulnerable type_text/launch_app tools in ufo/client/mcp/http_servers/mobile_mcp_server.py. The attacker then supplies shell metacharacters in the text or package_name parameter. Limiting factors that reduce real-world risk: authentication (API key) is mandatory, a pre-authorized ADB device must exist, and resulting execution is confined to Android shell-user privileges - it does NOT yield host OS code execution or Android root. |
| Impact | This is a CWE-78 command injection in Microsoft UFO's Mobile MCP server (type_text/launch_app) carrying a vendor/NVD CVSS of 8.8 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H). The network vector and low complexity argue for easy exploitation, but PR:L is the decisive modifier: exploitation requires a valid Mobile MCP API key AND a reachable device already authorized for ADB, so this is not an unauthenticated internet-wide condition and is poorly suited to opportunistic/wormable abuse. No EPSS score was provided in the input, and the CVE is NOT in CISA KEV, so there is no confirmed active exploitation - exploitation status here is 'no public exploit identified at time of analysis,' though the fix commit's security test suite explicitly enumerates working injection payloads (e.g. 'a;id', 'a$(id)', 'com.example||id'), which materially lowers the bar for an attacker who already holds API access. The signals are consistent rather than conflicting: a genuinely high technical impact (full shell-user command execution on the device) gated behind authentication and a specific deployment (connected ADB-authorized Android device). Net: a real priority for the subset of environments actually running UFO's Mobile MCP server against live devices, but the authentication and device-authorization prerequisites make the realistic threat targeted/insider-adjacent rather than mass-exploitable. The description's note that impact is capped at the Android shell user (no host OS execution, no Android root) further bounds blast radius relative to the raw 8.8. |
| Exploit ScenarioDerived | An actor holding a valid Mobile MCP API key reaches the UFO Mobile MCP server (prior to 3.0.10) that is driving an ADB-authorized Android device, then calls launch_app or type_text with a package_name/text value containing shell metacharacters (e.g. 'com.example;toybox${IFS}id'). Because the parameter is joined into the adb shell command string and reparsed by the Android shell, the injected command runs as the Android shell user on the connected device. No standalone public exploit is identified, but the vendor's fix-commit test cases demonstrate the exact injection payloads. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 06, 2026
Authenticated command injection in Microsoft UFO's Mobile MCP server (ufo/client/mcp/http_servers/mobile_mcp_server.py) lets a caller holding a valid Mobile MCP API key smuggle shell metacharacters through the type_text text parameter and the launch_app package_name parameter; the adb client concatenates those values into a remote command string that the connected Android device re-parses, executing extra commands as the Android shell user. The issue affects UFO releases prior to 3.0.10 and, per the CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H vector (8.8), requires authentication (PR:L) plus a reachable, already ADB-authorized device, while confining impact to Android shell-user privileges rather than host OS or root execution. No public exploit identified at time of analysis. Vendor-released patch: 3.0.10.
RemediationAI
Upgrade Microsoft UFO to version 3.0.10, the exact vendor-released fix, available at https://github.com/microsoft/UFO/releases/tag/v3.0.10; the patch applies shlex quoting to type_text arguments and a strict package-name allow-list validation to launch_app, so upgrading eliminates both injection paths. If immediate upgrade is not possible, apply compensating controls with awareness of their trade-offs: bind the Mobile MCP HTTP server to localhost or a restricted management network instead of exposing it broadly (this breaks remote agent workflows that legitimately need network access to the server), rotate and tightly scope Mobile MCP API keys since a valid key is a mandatory prerequisite for exploitation (rotation invalidates existing integrations until reconfigured), and disconnect or un-authorize ADB devices that are not strictly required by the automation workflow, since the attack needs a reachable device already authorized for ADB (this reduces functionality for any legitimate device-automation use). Monitor adb invocations from the Mobile MCP server for shell metacharacters in the text/package_name parameters as a detection backstop. Note that exploitation is confined to Android shell-user privileges and does not yield host OS code execution or Android root, so host-level containment is not the primary concern; the priority is cutting off the authenticated API-key-plus-authorized-device path. Vendor advisory: https://github.com/microsoft/UFO/security/advisories/GHSA-6ppj-5886-4f26.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
This is a CWE-78 OS command injection rooted in the way Android's adb client handles arguments. When ufo's mobile MCP server invokes adb for the type_text and launch_app tools, arguments are passed into adb shell positions that the adb client joins into a single remote command string before sending it over the ADB transport; the Android device's shell then re-parses that string, so any embedded metacharacters (;, |, ||, &, &&, backticks, $(...), ${IFS}, newlines, carriage returns, tabs, redirection operators, quotes) are interpreted as shell syntax rather than literal input data. The upstream fix in 3.0.10 hardens both call sites: type_text arguments are quoted with shlex so that characters such as ;, |, &, $(), backticks, whitespace, and quotes survive as literals (verified by a shlex.split round-trip test), and a NUL byte in the text is rejected before adb is ever invoked. For launch_app, the package_name is validated against a strict allow-list grammar that rejects semicolons, pipes, ampersands, backticks, substitutions, newlines/tabs, redirection characters, leading dashes (option injection), surrounding whitespace, leading/trailing or doubled dots, glob characters, NUL, and Unicode homoglyph domains before any adb subprocess is spawned. The vulnerable surface is specifically the authenticated Mobile MCP HTTP server exposing the type_text and launch_app tools.
Know when Android gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Network-reachable MCP tool, low complexity, but a valid API key is required so PR:L (not PR:N); full shell-user command execution on the device gives C:H/I:H/A:H.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
2DescriptionCVE.org
Microsoft UFO is an open-source framework for intelligent automation across devices and platforms. Prior to 3.0.10, the type_text and launch_app tools in ufo/client/mcp/http_servers/mobile_mcp_server.py pass the authenticated caller-controlled text and package_name parameters into adb shell command argument positions without comprehensive validation. The adb client joins those arguments into a remote command string that the Android shell reparses, allowing shell metacharacters to execute additional commands on an authorized connected device as the Android shell user. Exploitation requires a valid Mobile MCP API key and a reachable device authorized for ADB, and it does not establish host operating-system execution, Android root execution, or access beyond the Android shell-user privileges. This issue is fixed in version 3.0.10.
Technical POC Analysis
CWE-78 (OS Command Injection), with the advisory also citing CWE-88 (Argument Injection).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A command injection flaw in Microsoft UFO's Mobile MCP server (releases prior to 3.0.10) allows anyone holding a valid Mobile MCP API key to run arbitrary commands as the Android shell user on any ADB-connected device reachable through that server. Because access requires a legitimate API key plus an already-authorized device, exposure is limited to teams running UFO-based mobile automation in shared or internet-reachable environments - but where those conditions are met, an insider or a leaked key could silently pivot across connected test and employee devices. Leadership should care because the affected component sits inside an AI-driven automation platform increasingly used in engineering pipelines, and the fix is a routine version upgrade rather than a design change.
Vendor-released patch: 3.0.10. Until upgraded, disable or network-isolate the Mobile MCP server, rotate and tightly scope Mobile MCP API keys to trusted callers only, revoke unnecessary ADB authorizations on connected devices, and monitor for anomalous adb or shell activity on ADB-connected Android endpoints.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
Adobe Flash Player before 13.0.0.292 and 14.x through 18.x before 18.0.0.160 on Windows and OS X and before 11.2.202.466
Integer underflow in the MPEG4Extractor::parseChunk function in MPEG4Extractor.cpp in libstagefright in mediaserver in A
Android 3.0 through 4.1.x on Disney Mobile, eAccess, KDDI, NTT DOCOMO, SoftBank, and other devices does not properly imp
Integer overflow in the SampleTable::setSampleToChunkParams function in SampleTable.cpp in libstagefright in Android bef
Apktool versions 2.9.1 and prior contain a path traversal vulnerability when processing Android APK files. Malicious APK
An elevation of privilege vulnerability in the Android system (art). Rated high severity (CVSS 7.8), this vulnerability
The AES-NI implementation in OpenSSL before 1.0.1t and 1.0.2 before 1.0.2h does not consider memory allocation during a
Use-after-free vulnerability in Adobe Flash Player before 13.0.0.292 and 14.x through 18.x before 18.0.0.160 on Windows
Use-after-free vulnerability in Adobe Flash Player before 13.0.0.292 and 14.x through 18.x before 18.0.0.160 on Windows
Android 1.6 Donut through 4.2 Jelly Bean does not properly check cryptographic signatures for applications, which allows
luni/src/main/java/java/io/ObjectInputStream.java in the java.io.ObjectInputStream implementation in Android before 5.0.
The Broadcom Wi-Fi driver in the kernel in Android 4.x before 4.4.4, 5.x before 5.1.1 LMY49G, and 6.x before 2016-02-01
EUVD-2026-93405
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB