Back to skill

Security audit

text-to-speech

Security checks for vulnerabilities and agentic risk

Overview

The skill is purpose-aligned, but it should be reviewed because it encourages unpinned npm-based skill installation, including global installs that skip confirmation prompts.

Review this skill carefully before installing. Only use it when you explicitly want to search for external skills, avoid global non-interactive installs by default, verify the source and exact version or commit of any skill, and do not run unpinned `npx` commands unless you trust the resolved package path.

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
SKILL.md:24
Finding

Unpinned Third-Party CLI Execution and Unreviewed Global Skill Installation

Content
View full analysis
` - Install a skill from GitHub or other sources - `npx skills check` - Check for skill updates - `npx skills update` - Update all installed skills ``` ```markdown ### Step 4: Offer to Install If the user wants to proceed, you can install the skill for them: ```bash npx skills add -g -y ``` The `-g` flag installs globally (user-level) and `-y` skips confirmation prompts. ``` ### Technical Analysis The skill instructs the agent to invoke `npx skills` without pinning the CLI to an audited version or integrity hash. Depending on the local npm environment, `npx` can retrieve and execute the named package from an external registry. The effective CLI implementation can therefore differ from the implementation reviewed when this skill was published. The CLI is subsequently used to locate and install skills from third-party repositories. The recommended installation command combines two security-sensitive options: - `-g` installs the selected skill globally at the user level, expanding its effects beyond the current project. - `-y` suppresses confirmation prompts, reducing the opportunity for the user to verify the source and resolved package before installation. The instructions do require the user to want to proceed, so this is not evidence of covert or automatically triggered installation. Nevertheless, the workflow does not require source inspection, immutable commit pinning, integrity validation, publisher verification, or sandboxing before third-party content is executed or installed. ### Attack Path 1. An attacker publishes, compromises, or takes control of the `skills` npm package, a package resolved through it, or a ...[truncated 1710 chars]
Remediation
View remediation
find ``` Record and verify the package integrity hash through a lockfile or an equivalent trusted mechanism. 2. Do not recommend global, non-interactive installation by default. Replace: ```bash npx skills add -g -y ``` with a project-local, interactive installation command that preserves user confirmation. 3. Require explicit approval immediately before any retrieval or installation. Display the exact publisher, repository URL, resolved version, and commit hash to the user. 4. Pin third-party skills to immutable commit hashes or signed releases. Do not install directly from a mutable branch, tag, or unverified search result. 5. Inspect downloaded skill contents before activation, including instruction files, scripts, package manifests, lifecycle hooks, symbolic links, and referenced external resources. 6. Restrict acceptable sources to a maintained allowlist of trusted publishers and repositories. Verify repository ownership and release signatures where available. 7. Perform retrieval and installation in a sandbox with minimal filesystem, credential, environment-variable, and network access. 8. Separate discovery from installation. Searching for a skill must not automatically authorize downloading, executing, or globally registering it. 9. Document rollback procedures and provide a command that removes the installed skill and any user-level configuration it created. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (17)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill description uses broad help-seeking language like 'how do I do X' and 'find a skill for X,' which can cause over-triggering in ordinary conversations. In practice, that can steer the agent toward unnecessary package discovery/installation flows, increasing exposure to supply-chain and prompt-routing risks even when the user did not explicitly ask to install external capabilities.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The 'When to Use This Skill' section contains ambiguous triggers such as users asking 'can you do X' or expressing interest in extending capabilities. These conditions are broad enough to capture many benign requests and may route users into external package search and installation guidance without sufficiently clear need or consent.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

The skill repeatedly instructs the agent/user to invoke npx skills without pinning a package version or verifying integrity. npx fetches and executes code from the registry at runtime, so a compromised package, malicious update, or dependency confusion event could lead to arbitrary code execution on the host.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

This command reference uses npx skills without version pinning, causing execution of whatever package version is current at the time of use. In a skill whose purpose is discovering and installing more code, this expands supply-chain risk because the initial unpinned tool can itself fetch and run additional untrusted content.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

Using npx skills add <package> without pinning the CLI version means the execution path depends on mutable remote package state. That creates a direct route for arbitrary code execution if the CLI or its transitive dependencies are compromised.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

Even the update-check path uses an unpinned npx invocation, which still requires downloading and running mutable remote code. While lower impact than direct installation, it remains a supply-chain execution risk.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The npx skills update instruction executes an unpinned remote package and then updates installed skills, compounding supply-chain risk in a single step. An attacker controlling either the CLI release path or an update source could achieve code execution and persistence through updated skills.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The search step tells the agent to run npx skills find [query] without version pinning, again relying on live remote package execution. Because this skill is likely to be triggered often, the repeated unpinned execution increases exposure frequency.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This example command uses the same unpinned npx skills pattern, exposing users to remote code execution via mutable package resolution. Example commands are especially risky because users commonly copy-paste them verbatim.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The PR review search example invokes npx skills without any version or integrity constraint. This is a true supply-chain vulnerability because the documentation normalizes executing network-fetched code directly.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The changelog search example repeats the same unsafe package execution pattern. In aggregate, the document systematically encourages unsafe operational behavior rather than containing an isolated mention.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The installation recommendation npx skills add <owner/repo@skill> relies on an unpinned CLI and then installs third-party skill content from external sources. That combination materially increases the chance of executing malicious code or instructions from either the CLI or the installed skill.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The sample install command is another copy-pasteable unpinned npx invocation leading directly to skill installation. Because users are likely to execute it exactly as shown, this is an actionable and exploitable supply-chain risk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The installation guidance recommends -g -y but does not warn that this performs a global install and bypasses confirmation prompts. This meaningfully increases risk because it encourages system-wide changes and suppresses the last interactive checkpoint before executing or installing potentially untrusted third-party content.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding

npx skills add <owner/repo@skill> -g -y is particularly dangerous because it combines unpinned remote code execution with global installation and suppressed confirmation prompts. This reduces friction for unsafe changes and can install unreviewed capabilities system-wide or user-wide without meaningful user validation.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

Suggesting npx skills init without version pinning still executes mutable remote code from the registry. Even though initialization may seem lower risk, it can still run arbitrary install-time logic or scaffolding hooks.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The final example again normalizes unpinned npx execution in a context where users may be creating and later distributing new skills. This perpetuates insecure supply-chain practices across the ecosystem.

Content

No source excerpt is available for this finding.