Back to skill

Security audit

mcptoon

Security checks for vulnerabilities and agentic risk

Overview

The skill’s purpose is coherent, but it recommends mutable external installs that can wire an MCP bridge without version pinning or clear rollback guidance.

Review the mcptoon PyPI package and marketplace plugin before installing, avoid automatic upgrades, prefer a pinned reviewed version, and inspect any MCP bridge or .mcp.json changes. Connect it only to MCP servers you intend it to mediate.

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 (2)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:8
Finding
Unpinned Python Package Installation and Upgrade<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 8–10 and 42–44 **Vulnerability Type**: Unpinned third-party package installation **Risk Level**: Medium ### Vulnerable Code ```markdown mcptoon is a zero-dependency CLI. If it is not installed yet, one command sets it up: `pip install mcptoon` (128KB, installs in seconds, nothing else pulled in). It gives you a compressed view of the user's MCP tools and calls them back. ``` ```markdown ## Setup - Install/upgrade: `pip install --upgrade mcptoon` (zero-dependency wheel, 128KB, installs in seconds). - Diagnose: `mcptoon doctor`. ``` ### Technical Analysis The skill instructs users or agents to install the latest package available under the `mcptoon` name and later upgrade it without specifying a reviewed version, cryptographic hash, lock file, package signature, or verified source repository. Consequently, the installed code is not immutable relative to the audited skill. A future package release, compromised publisher account, or package-registry compromise could cause these commands to install code that differs from the version originally intended or reviewed. The use of `--upgrade` further increases exposure by replacing an existing installation with the latest available release. Python package installation may also invoke package-controlled build or installation behavior, depending on the package format and installer environment. ### Attack Path 1. An attacker compromises the package publisher account or the relevant package-registry distribution channel. 2. The attacker publishes a malicious release under the expected `mcptoon` package name. 3. A user or agent follows the skill instruction and runs `pip install mcptoon` or `pip install --upgrade mcptoon`. 4. The package manager retrieves and installs the attacker-controlled release because no version or hash is pinned. 5. The malicious package executes during installation or when the documented CLI is subsequently invoked. 6 ...[truncated 665 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin the package to a specifically reviewed version, for example: ```bash python -m pip install "mcptoon==<reviewed-version>" ``` 2. Publish and verify cryptographic hashes through a locked requirements file: ```bash python -m pip install --require-hashes -r requirements.txt ``` 3. Identify the authoritative source repository and package publisher in the skill documentation. 4. Verify release signatures, provenance attestations, or trusted-publisher metadata where available. 5. Remove the unconditional upgrade recommendation. Require review and approval before changing the installed version. 6. Prefer installation in an isolated virtual environment with only the permissions required for MCP operations. 7. Document the exact package version to which the skill’s behavioral and security claims apply. ]]>

T08 · Insecure Dependencies

Warning
Location
SKILL.md:45
Finding
Mutable External Plugin Installation with MCP Bridge Modification<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 45–48 **Vulnerability Type**: Unverified external plugin and supply-chain integration **Risk Level**: Medium ### Vulnerable Code ```markdown - Claude Code users get one-command setup instead: `/plugin marketplace add activeing123/mcptoon` (installs the CLI, wires the bridge, and bundles this skill). ``` ### Technical Analysis The skill recommends installing a plugin from an external marketplace source without specifying an immutable release, commit identifier, checksum, signature, or verification procedure. The documentation states that the plugin installs a CLI and wires an MCP bridge, giving the externally maintained component a security-sensitive intermediary role. Because the referenced source is mutable, the effective plugin content installed in the future may differ from the content available when this skill was audited. Bridge integration may allow the plugin to observe, route, modify, or respond to MCP discovery and tool-call traffic accessible through that bridge. The bridge modification is consistent with the skill’s declared catalog-compression purpose; there is no evidence in the reviewed file that the current plugin is malicious. The vulnerability is the absence of controls ensuring that the installed external component is the reviewed and intended version. ### Attack Path 1. An attacker compromises the external marketplace account, repository, plugin distribution channel, or a future plugin release. 2. The attacker replaces or updates the plugin with malicious content. 3. A user follows the documented marketplace installation command. 4. The marketplace retrieves the current mutable plugin because no immutable version or integrity value is specified. 5. The plugin installs its CLI and modifies the MCP bridge configuration as described by the skill. 6. The compromised bridge can manipulate MCP tool discovery, route calls incorrectly, alter tool results, or access d ...[truncated 746 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin the plugin to an immutable, reviewed release or commit instead of a mutable marketplace reference. 2. Publish checksums, signatures, or provenance attestations and require verification before installation. 3. Document the exact files, commands, and MCP configuration entries changed by the plugin. 4. Require explicit user confirmation before installing the CLI or modifying bridge configuration. 5. Restrict the bridge to the minimum required MCP servers, tools, filesystem access, and network permissions. 6. Provide rollback instructions that remove the plugin, restore the previous MCP configuration, and uninstall associated components. 7. Review each plugin update before deployment rather than enabling automatic or implicit upgrades. 8. Clearly identify the authoritative marketplace publisher and source repository so users can validate ownership. ]]>
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger language is very broad, covering many generic situations like large tool catalogs, token cost, and multiple agent environments, which can cause the skill to activate in contexts where it is unnecessary. That increases the chance users or agents are steered toward installing or using this external CLI when simpler or safer built-in approaches would suffice, expanding attack surface indirectly.

Rp1

Low
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The skill instructs users/agents to install `mcptoon` from PyPI without pinning an exact version, which creates a supply-chain risk: future releases could introduce malicious code or breaking behavior and would be implicitly trusted at install time. In an agent skill context, this is more dangerous because the installation command is presented as a one-step setup path, increasing the chance of automatic or habitual execution without manual review.

Rp1

Low
Category
MCP Rug Pull
Confidence
96% confidence
Finding
`pip install --upgrade mcptoon` is an even broader supply-chain risk because it explicitly fetches the latest available package version at execution time, guaranteeing non-reproducible installs and maximizing exposure to a compromised upstream release. In this skill, the command is framed as standard setup guidance, so operators may repeatedly pull unreviewed code into trusted environments.

Static analysis

No suspicious patterns detected.