{"id":"CVE-2025-52573","aliases":["GHSA-6f6r-m9pv-67jw"],"url":"https://o3.security/vulnerability/CVE-2025-52573","summary":"Command Injection in MCP Server ios-simulator-mcp","details":"# Command Injection in MCP Server\n\nThe MCP Server at https://github.com/joshuayoes/ios-simulator-mcp/ is written in a way that is vulnerable to command injection vulnerability attacks as part of some of its MCP Server tool definition and implementation.\n\n## Vulnerable tool\n\nThe MCP Server exposes the tool `ui_tap` which relies on Node.js child process API `exec` which is an unsafe and vulnerable API if concatenated with untrusted user input.\n\nLLM exposed user input for `duration`, `udid`, and `x` and `y` args can be replaced with shell meta-characters like `;` or `&&` or others to change the behavior from running the expected command `idb` to another command.\n\nVulnerable line of code: https://github.com/joshuayoes/ios-simulator-mcp/blob/main/src/index.ts#L166-L207\n\n```js\n  server.tool(\n    \"ui_tap\",\n    \"Tap on the screen in the iOS Simulator\",\n    {\n      duration: z.string().optional().describe(\"Press duration\"),\n      udid: z\n        .string()\n        .optional()\n        .describe(\"Udid of target, can also be set with the IDB_UDID env var\"),\n      x: z.number().describe(\"The x-coordinate\"),\n      y: z.number().describe(\"The x-coordinate\"),\n    },\n    async ({ duration, udid, x, y }) => {\n      try {\n        const actualUdid = await getBootedDeviceId(udid);\n        const durationArg = duration ? `--duration ${duration}` : \"\";\n        const { stderr } = await execAsync(\n          `idb ui tap --udid ${actualUdid} ${durationArg} ${x} ${y}  --json`\n        );\n\n```\n\n## Exploitation\n\nWhen LLMs are tricked through prompt injection (and other techniques and attack vectors) to call the tool with input that uses special shell characters such as `; rm -rf /tmp;#` and other payload variations, the full command-line text will be interepted by the shell and result in other commands except of `ps` executing on the host running the MCP Server.\n\nReference example from prior security research on this topic:\n\n![Cursor defined MCP Server vulnerable to command injection](https://res.cloudinary.com/snyk/image/upload/f_auto,w_2560,q_auto/v1747081395/Screenshot_2025-05-07_at_9.22.11_AM_d76kvm.png)\n\n## Impact\n\nUser initiated and remote command injection on a running MCP Server.\n\n## References and Prior work\n\n1. [Exploiting MCP Servers Vulnerable to Command Injection](https://snyk.io/articles/exploiting-mcp-servers-vulnerable-to-command-injection/)\n2. Liran's [Node.js Secure Coding: Defending Against Command Injection Vulnerabilities](https://www.nodejs-security.com/book/command-injection)\n\n##\n\nDisclosed by [Liran Tal](https://lirantal.com)","published":"2025-06-26T14:08:56.100Z","modified":"2026-10-28T02:31:06.010817698Z","cvss":{"score":6,"severity":"MEDIUM","vector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:N/I:H/A:H"},"epss":{"score":0.00652,"percentile":0.4955,"asOf":"2026-09-16"},"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"npm","name":"ios-simulator-mcp","fixedVersion":"1.3.3"}],"fix":{"url":"https://github.com/joshuayoes/ios-simulator-mcp/commit/eb53a4f2cc8bbeb13e8d6d930f00167befcdb809","label":"joshuayoes/ios-simulator-mcp@eb53a4f"},"references":[{"type":"WEB","url":"https://github.com/joshuayoes/ios-simulator-mcp/blob/main/src/index.ts#L166-L207"},{"type":"WEB","url":"https://github.com/joshuayoes/ios-simulator-mcp/releases/tag/v1.3.3"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/52xxx/CVE-2025-52573.json"},{"type":"ADVISORY","url":"https://github.com/joshuayoes/ios-simulator-mcp/security/advisories/GHSA-6f6r-m9pv-67jw"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2025-52573"},{"type":"FIX","url":"https://github.com/joshuayoes/ios-simulator-mcp/commit/eb53a4f2cc8bbeb13e8d6d930f00167befcdb809"},{"type":"PACKAGE","url":"https://github.com/joshuayoes/ios-simulator-mcp"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-10-28T02:31:06.010817698Z"}}