Back to skill

Security audit

xcodebuildmcp

Security checks for vulnerabilities and agentic risk

Overview

This Xcode automation skill is coherent, but its setup instructions run unpinned network packages and its device/media workflows need clearer user safeguards.

Review the MCP setup before installing. Prefer pinned package versions from a trusted source, avoid running the install commands with elevated privileges, confirm the exact simulator or device before launch/install actions, and use sanitized test data when capturing screenshots, recordings, logs, or debugger output.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
references/mcp-setup.md:18
Finding

Unpinned Third-Party Packages Executed Through npx

Content
View full analysis
``` ### Technical Analysis Both setup methods instruct users to download and execute third-party registry packages without pinning them to reviewed versions or verifying their integrity. The first command explicitly selects `xcodebuildmcp@latest`, allowing the executed package contents to change after this Skill has been audited. The second command does not specify a version for `@smithery/cli`, so the package manager resolves the current registry version at execution time. In both cases, `npx -y` suppresses the normal confirmation prompt. This creates a time-of-use supply-chain risk. A compromised maintainer account, malicious package release, registry compromise, dependency confusion event, or compromised transitive dependency could cause different and potentially malicious code to execute under the same documented command. The documentation provides no exact version, integrity hash, signature, lockfile, or canonical source URL that users can use to verify the retrieved artifacts. This finding does not establish that either named package is currently malicious. It identifies that the installation process does not constrain or authenticate the code that will be executed. ### Attack Path 1. An attacker compromises a package maintainer account, registry publication process, package release, or transitive dependency. 2. The attacker publishes a malicious version under the package name used by the documented command. 3. A user follows the setup instructions afte ...[truncated 1421 chars]
Remediation
View remediation
"] } } } ``` Similarly, pin the Smithery CLI: ```text npx @smithery/cli@ install xcodebuildmcp --client ``` 2. Remove `-y` where interactive confirmation is practical so unexpected package installation is not silently approved. 3. Record and verify package integrity hashes or signatures before execution. Where possible, use a committed lockfile and a reproducible installation process. 4. Add canonical package registry and source-repository URLs so users can verify package identity and provenance. 5. Review the pinned package and its dependency tree before recommending it, and use automated dependency monitoring to identify compromised or vulnerable releases. 6. Prefer installing packages in a constrained environment with only the filesystem and credentials required for setup. Do not run these commands with elevated privileges. 7. Document a controlled upgrade procedure requiring review and integrity verification before changing the pinned versions. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (3)

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The documentation recommends executing an unpinned package directly from the network via npx -y @smithery/cli, which means whatever version is latest at execution time will run on the user's machine. This creates a supply-chain risk: if the package or one of its dependencies is compromised, users following the setup instructions could execute malicious code with their local user privileges.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The workflow explicitly promotes screenshots for verification and elsewhere includes simulator video recording and log capture, all of which can collect sensitive application content, credentials, tokens, or user data shown in the UI or emitted in logs. In an agent skill context, normalizing these actions without a privacy warning, consent boundary, or data-minimization guidance increases the chance of unintentional sensitive data collection during routine debugging or testing.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
80% confidence
Finding

The device workflow instructs building, installing, and launching on a connected physical device without warning that these actions will affect real hardware and may disrupt the device state or interact with non-test data. In this skill's context, device-control capabilities are expected, but the lack of an explicit caution or confirmation step still creates risk of unintended actions on the wrong device.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.