Back to skill

Security audit

XYDC MCP

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its XYDC connector purpose, but its setup instructions can execute mutable remote installer scripts and some execution paths are broad enough to warrant review before use.

Install only if you trust OOMOL and the XYDC MCP connector, and avoid running the documented pipe-to-shell installer blindly. Prefer installing oo from a verified, pinned release or package manager, confirm any credit-consuming or state-changing action before execution, and treat generic call_tool requests as potentially billable or state-changing even when not explicitly tagged.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T03 · Remote Payload Retrieval and Execution

Error
Location
SKILL.md:102
Finding
Unverified Remote Installation Scripts Executed Directly by Shells<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 102–106 **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: High ### Vulnerable Code ```bash curl -fsSL https://cli.oomol.com/install.sh | bash # macOS / Linux ``` ```powershell irm https://cli.oomol.com/install.ps1 | iex # Windows PowerShell ``` ### Technical Analysis The installation instructions retrieve executable content from remote URLs and pass it directly to `bash` or PowerShell's `Invoke-Expression`. The downloaded scripts are not pinned to an immutable release, inspected before execution, or verified using a cryptographic checksum or signature. Although HTTPS provides transport encryption and server authentication, it does not establish that the script will remain unchanged or benign after the Skill has been reviewed. Compromise of the distribution domain, DNS infrastructure, TLS credentials, hosting account, build pipeline, or installation scripts could cause arbitrary attacker-controlled commands to be executed. Installing the CLI may be relevant to the declared connector functionality, but immediate execution of mutable remote content exceeds the minimum privilege and trust necessary for installation. A package or versioned artifact can instead be downloaded and independently verified before execution. ### Attack Path 1. An attacker compromises the installation server, publishing pipeline, hosting account, DNS configuration, or another component serving `install.sh` or `install.ps1`. 2. The `oo` command is unavailable, causing a user or agent to follow the documented first-time setup procedure. 3. The installation command downloads the current remote script. 4. The shell executes the response immediately, without local inspection or integrity verification. 5. The malicious script runs arbitrary commands using the privileges of the invoking process. 6. The script may access user-readable files and credentials, alter local configu ...[truncated 865 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove all direct pipe-to-shell and `Invoke-Expression` installation commands. 2. Distribute the CLI through a trusted package manager or a versioned release artifact from an official repository. 3. Pin installation instructions to a specific immutable version rather than a mutable latest-installation URL. 4. Publish a SHA-256 checksum and, preferably, a cryptographic signature for each artifact. 5. Download the artifact to a local file, verify its checksum and signature, and only then execute or install it. 6. Require explicit user approval before running any installer; the agent should not install software automatically after a command failure. 7. Run installation with ordinary user privileges unless elevation is demonstrably required. 8. Document the expected files, network destinations, and system changes made by the installer. 9. Prefer instructions equivalent to the following controlled sequence: ```bash curl -fL -o oo-installer.sh "https://trusted.example/releases/v1.0.0/install.sh" printf '%s %s\n' "<published-sha256>" "oo-installer.sh" | sha256sum --check less oo-installer.sh bash oo-installer.sh ``` The actual URL, version, and checksum must come from a trusted, authenticated release channel. ]]>
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (3)

External Script Fetching

High
Category
Supply Chain
Content
- **`oo: command not found`** — install the oo CLI (other platforms: <https://cli.oomol.com/install-guide.md>):

  ```bash
  curl -fsSL https://cli.oomol.com/install.sh | bash    # macOS / Linux
  ```

  ```powershell
Confidence
99% confidence
Finding
The skill instructs users to install software via `curl ... | bash`, which executes a remote script directly without prior verification or integrity checks. If the distribution endpoint, TLS trust chain, or hosting account is compromised, this becomes arbitrary code execution on the user's machine; the fact that it appears in a 'first-time setup' section makes it more dangerous because users may treat it as trusted operational guidance.

Vague Triggers

Medium
Confidence
96% confidence
Finding
The manifest says to use this skill for 'ANY XYDC MCP request' and 'instead of calling the API directly,' which is overly broad and can cause inappropriate routing of all related tasks through this skill without adequate least-privilege scoping. In a system with mixed read/write capabilities and cost-bearing actions, such broad trigger language increases the chance an agent invokes the skill in situations where a narrower or safer path should be used.

Intent-Code Divergence

Medium
Confidence
97% confidence
Finding
The skill labels `get_asin_order_trends` as a `[write]` action even though the description says it only retrieves order counts. Misclassifying a read as a write is a security-relevant integrity issue because downstream agents may apply the wrong trust, confirmation, or execution logic, leading to either unnecessary user-confirmation bypass assumptions elsewhere or operator confusion about which actions mutate state.

Static analysis

No suspicious patterns detected.