Back to skill

Security audit

Find Skills

Security checks for vulnerabilities and agentic risk

Overview

The skill’s goal is legitimate, but it guides agents toward broad skill discovery and global third-party skill installation using unpinned commands and skipped confirmations.

Review this skill carefully before installing. It is not showing deception or destructive behavior, but it can lead your agent to run unpinned external tooling and install third-party skills globally. Prefer explicit user approval before every install, avoid `-y`, avoid global scope unless needed, pin or verify the CLI and target skill source, and inspect any skill before allowing it to affect future sessions.

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:29
Finding

Unpinned Third-Party CLI and Unattended Global Skill Installation

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:29-32 and SKILL.md:100-106
Vulnerability Type: Supply-chain exposure through unpinned dependencies and unsafe installation guidance
Risk Level: Medium

Relevant code (SKILL.md:29-32):

bash
npx skills find [query]
npx skills add <package>
npx skills check
npx skills update

Relevant code (SKILL.md:100-106):

markdown
### Step 6: Offer to Install

If the user wants to proceed, you can install the skill for them:

```bash
npx skills add <owner/repo@skill> -g -y
text

### Technical Analysis

The skill instructs the agent to execute `npx skills` without pinning the npm package to a reviewed version. Unless an appropriate trusted local package is already available, `npx` can resolve and execute package content obtained from the npm ecosystem. The effective CLI implementation may therefore change after this skill has been reviewed.

The CLI is then used to retrieve skills from GitHub or other third-party sources. The documented quality checks rely on installation counts, publisher reputation, and GitHub stars. These are useful reputation signals, but they do not establish artifact integrity, inspect installed content, pin an immutable commit, or prevent a compromised publisher account or repository from distributing malicious content.

The installation command further uses `-g`, which installs at user scope, and `-y`, which suppresses confirmation prompts. This expands the persistence and exposure of an untrusted skill while reducing the opportunity for the user to review the selected source and installation operation. The project contains no bundled executable script; the risk arises from the documented execution and installation workflow.

### Attack Path

1. An attacker publishes or compromises a package, repository, or skill that appears relevant to a common search query.
2. The agent follows `SKILL.md` and execute
...[truncated 1601 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin the CLI to an explicitly reviewed version rather than executing an unqualified package name, for example by using an approved exact version and lockfile-backed installation process.
  2. Verify package provenance and integrity using registry signatures, checksums, or equivalent controls supported by the distribution mechanism.
  3. Maintain an allowlist of approved skill publishers, repositories, and immutable commit identifiers.
  4. Fetch and inspect every skill's complete contents before installation, including instruction files, scripts, hooks, dependencies, and generated configuration.
  5. Do not treat install counts, repository stars, or publisher names as sufficient security verification.
  6. Remove -y so that the exact source, version, destination, and requested changes can be reviewed and explicitly approved.
  7. Avoid -g by default. Install into an isolated project directory or sandbox with minimal filesystem, network, credential, and tool access.
  8. Require separate user authorization immediately before installation rather than treating a general request to find a skill as installation approval.
  9. Record the resolved package version, repository commit, integrity value, and installed files to support auditing and reproducibility.
  10. Scan and test downloaded skills in an isolated environment before allowing them to influence an agent with access to sensitive data or tools.
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 (16)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill explicitly offers to install a skill using -g -y, which enables global persistent installation while suppressing confirmation prompts and provides no warning about system-impacting changes. In a security-sensitive context, this reduces user consent, increases blast radius, and could silently persist untrusted or compromised code beyond the immediate session.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The frontmatter description says the skill should be used for broad prompts like 'how do I do X' or general interest in extending capabilities, which overlaps with many ordinary requests. Overbroad triggering can cause the agent to invoke package-discovery and installation guidance in contexts where the user did not ask to run external tooling, increasing the chance of unnecessary exposure to unsafe commands.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The activation guidance includes ambiguous, everyday phrases such as asking 'how do I do X' or 'can you do X', without requiring explicit intent to discover or install a skill. In context, that broad scope is risky because it may route routine conversations into a workflow that runs unpinned external commands and suggests third-party installations.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The skill repeatedly instructs use of npx skills without pinning a specific package version, which causes execution of whatever version is currently resolved from the registry at runtime. In a skill whose core function is discovering and installing additional packages, this materially increases supply-chain risk because users may execute changed or compromised code simply by following the documented command.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This command reference uses unpinned npx skills, allowing remote package resolution and execution without a fixed version. Because the skill encourages package discovery and installation from external sources, an attacker who controls or compromises the package supply chain could alter behavior across all downstream actions.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

Using npx skills add <package> without pinning the CLI version means the installer itself is fetched dynamically and may change over time. In combination with adding third-party skills from GitHub or other sources, this creates a layered supply-chain exposure affecting both the installer and installed content.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The unpinned npx skills check command executes a remotely resolved CLI version that can differ between runs. Even for a seemingly read-only operation, compromised tooling could exfiltrate data or mislead users about available updates.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The skill recommends npx skills update without version pinning, so users may execute arbitrary newly published installer code while performing a high-trust update action. Update flows are especially sensitive because they modify existing installed components and are likely to be run with broad filesystem access.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

This search instruction again relies on an unpinned npx skills invocation, exposing users to dynamic code execution from the package registry. In context, the skill operationalizes this command as part of normal workflow, increasing the chance it will be widely and repeatedly run.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The example npx skills find react performance is unpinned and can invoke changed remote code at execution time. Since the command is presented as recommended agent behavior, it normalizes unsafe package execution for routine discovery tasks.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

This sample search command fetches and executes an unpinned package via npx, creating supply-chain risk. The danger is amplified because the skill can route many unrelated user requests into this workflow, making exploitation opportunities broad.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

This example continues the pattern of transient execution of an unversioned external package. In a skill that is explicitly about finding and installing more code, failing to pin versions meaningfully undermines trust and reproducibility.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

The installation example instructs users to run npx skills add ... without pinning the CLI version, so the installer itself is mutable at runtime. Because this command leads directly to installing new skills, compromise could result in arbitrary code execution or persistent malicious additions.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding

The command npx skills add <owner/repo@skill> -g -y combines unpinned remote execution with global installation and skipped confirmation, making the exposure especially severe. A compromised or changed CLI could silently make persistent, system-wide changes with minimal user awareness.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

This usage note again normalizes unpinned npx skills execution. Repetition across the document increases operational risk because readers are encouraged to treat transient execution of remote code as standard practice.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The npx skills init example is also unpinned, so even project scaffolding depends on executing a mutable remote package. While less immediately dangerous than install/update commands, it still exposes users to arbitrary code execution from the package registry.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.