Back to skill

Security audit

ChartMogul

Security checks for vulnerabilities and agentic risk

Overview

This ChartMogul skill is mostly aligned with read-only account/customer lookups, but its setup instructions include unverified remote installer commands that should be reviewed before use.

Review the setup path before installing. Prefer installing the oo CLI from a pinned, verified release or trusted package manager instead of running the remote installer pipe commands. Also confirm you are comfortable connecting ChartMogul to OOMOL, since the skill can retrieve customer and account data through that service.

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:55
Finding
Unverified Remote Installer Downloaded and Executed Directly## Vulnerability Details **File Location**: `SKILL.md`, lines 55–65 **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: Critical The first-time setup instructions provide remote-to-shell installation commands for both macOS/Linux and Windows: ```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 These commands retrieve mutable scripts from `cli.oomol.com` and execute them immediately using Bash or PowerShell. The instructions do not pin a release, verify a cryptographic checksum or publisher signature, or provide an opportunity to inspect the downloaded content before execution. Because the installer is not included in the audited project, its effective behavior cannot be determined by reviewing this Skill and can change after the Skill has been approved. Compromise of the hosting infrastructure, publishing process, or trusted remote content could therefore convert the documented setup path into arbitrary code execution. Installation is conditional on the `oo` command being unavailable, which reduces invocation frequency but does not eliminate the exposure. Executing a remote installer also exceeds the minimum privileges needed for the Skill's declared read-only ChartMogul operations. The connector itself only requires an already-installed CLI, authentication, and a configured connection. ### Attack Path 1. The user invokes the Skill on a system where the `oo` CLI is unavailable. 2. A command fails with `oo: command not found`. 3. The agent or user follows the first-time setup instructions. 4. `curl` or `irm` retrieves the current installer from the external OOMOL host. 5. The pipe passes the response directly to Bash or `iex`, without verification or review. 6. If the remote installer or its distribution infrastructure has been compromised, at ...[truncated 657 chars]
Remediation
## Remediation Suggestions 1. Remove all `curl | bash` and `irm | iex` installation instructions. 2. Direct users to a version-pinned release distributed through a trusted package manager or verified publisher. 3. If manual installation is necessary, download the installer to a local file without executing it automatically. 4. Publish expected SHA-256 checksums and, preferably, cryptographic signatures through an independently authenticated channel. 5. Verify the checksum and publisher signature before execution, and fail closed on any mismatch. 6. Allow the user to inspect the downloaded installer and require explicit approval before running it. 7. Run installation with ordinary user privileges wherever possible; do not request administrator or root privileges unless a documented component strictly requires them. 8. Keep installation outside normal Skill execution. The Skill should report the missing prerequisite and provide safe, user-driven setup documentation rather than executing an installer itself.
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 (4)

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
95% confidence
Finding
The setup instructions recommend piping a remotely fetched script directly into the shell (`curl ... | bash`). If the distribution server, DNS, TLS trust chain, or install script is compromised, this yields immediate arbitrary code execution on the host running the skill setup.

Vague Triggers

Medium
Confidence
96% confidence
Finding
The trigger phrase directs use of this skill for any ChartMogul-related request, which is broader than the manifest's stated read/search purpose and can route unrelated or high-risk ChartMogul tasks through a generic connector wrapper. Broad routing increases the chance that sensitive, destructive, or poorly understood actions are executed via dynamic action selection.

Description-Behavior Mismatch

Medium
Confidence
98% confidence
Finding
The skill metadata and description claim the skill is for searching and reading data, but the body explicitly describes support for write and destructive actions. This mismatch can cause an agent or user to invoke the skill under a read-only assumption, reducing scrutiny and enabling unintended state-changing operations if additional actions are exposed by the connector schema.

Intent-Code Divergence

Low
Confidence
80% confidence
Finding
The safety model says untagged actions are reads, yet the action list contains no write/destructive tags while also acknowledging such actions may exist. Because the instructions tell the agent to inspect the live schema and run actions dynamically, omitted tagging can lead to unsafe trust in unlisted or newly added state-changing actions.

Static analysis

No suspicious patterns detected.