Back to skill

Security audit

Find Skills

Security checks for vulnerabilities and agentic risk

Overview

This skill is meant to find and install other skills, but it recommends unpinned remote CLI commands and global installs that skip confirmations.

Review this skill carefully before installing. Use it only when you explicitly want to search for or install agent skills, prefer pinned CLI versions and reviewed sources, avoid `-g -y` unless you understand the persistent user-level impact, and inspect each target skill before installation or update.

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

Unpinned CLI Enables Unattended Global Installation of Third-Party Skills

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 23-30, 57, 91, and 99-104
Vulnerability Type: Third-party software supply-chain exposure
Risk Level: Medium

Vulnerable Code

markdown
The Skills CLI (`npx skills`) is the package manager for the open agent skills ecosystem.

- `npx skills find [query]` - Search for skills interactively or by keyword
- `npx skills add <package>` - Install a skill from GitHub or other sources
- `npx skills check` - Check for skill updates
- `npx skills update` - Update all installed skills
bash
npx skills find [query]
bash
npx skills add vercel-labs/agent-skills@react-best-practices
markdown
If the user wants to proceed, you can install the skill for them:

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

The -g flag installs globally (user-level) and -y skips confirmation prompts.

text

### Technical Analysis

The skill directs an agent to execute `npx skills` without pinning the npm package to an exact, reviewed version or validating its integrity. Depending on npm and `npx` behavior and the local environment, this may retrieve and execute the package version that currently resolves under the `skills` name.

The CLI is then permitted to install skills from GitHub or unspecified alternative sources. The suggested installation command combines global user-level installation with `-y`, which suppresses interactive confirmation:

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

The document recommends checking install counts, source reputation, and GitHub stars. These are useful reputation signals but do not establish package integrity or prove that the selected content is safe. They do not protect against repository compromise, malicious releases, dependency confusion, typosquatting, ownership transfer, or a formerly trustworthy project becoming compromised.

The generic npx skills update instruction also permits installed content to change after its initial review wi ...[truncated 1877 chars]

Remediation
View remediation

Remediation Suggestions

  1. Pin the CLI to an exact, reviewed version rather than invoking an unconstrained package name:

    bash
    npx --yes skills@&lt;reviewed-exact-version&gt; ...
    

    Validate the package name, publisher, version, and registry metadata before use.

  2. Use a lockfile or equivalent integrity mechanism where supported. Verify package checksums or signatures against a trusted source before execution.

  3. Restrict installation sources to an explicit allowlist of reviewed repositories and owners. Do not permit generic installation from unspecified sources.

  4. Resolve skills to immutable commit hashes or signed release artifacts instead of mutable branches or tags.

  5. Download and inspect the complete skill contents before installation, including scripts, lifecycle hooks, nested dependencies, external URLs, and instructions that cause additional tool execution.

  6. Remove -g and -y from the default workflow. Prefer isolated, project-local installation with minimal permissions.

  7. Require explicit, informed user approval immediately before every installation or update. Present the exact source, version or commit, requested scope, and reviewed changes.

  8. Replace bulk updates with per-skill updates after reviewing release notes and content diffs. Preserve a known-good version and provide a rollback procedure.

  9. Run third-party skill tooling in a sandbox with restricted filesystem, credential, process, and network access whenever possible.

  10. Treat install counts, stars, and recognizable owner names only as supplemental signals, not as security verification.

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
99% confidence
Finding

The skill instructs the agent to install packages globally with -g and to skip confirmation prompts with -y, but does not require explicit informed consent or warn about trust, persistence, and system-wide impact. In combination with discovering third-party skills from external sources, this creates a high-risk path to silently introducing persistent malicious code or unsafe tooling into the user's environment.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The top-level description says the skill should be used whenever users ask broad questions like 'how do I do X' or express interest in extending capabilities. Those triggers overlap with ordinary help requests, so the agent may invoke a skill-discovery/install workflow in situations where the user only wanted advice, unnecessarily steering conversations toward executing or installing third-party tooling.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The activation section includes generic phrases like 'can you do X' and 'wish they had help with a specific domain' without boundaries. In the context of a skill that can lead to third-party package execution and installation, this ambiguity increases the risk of over-triggering and exposing users to unnecessary supply-chain and system-modification actions.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

The skill repeatedly instructs use of npx skills without pinning an exact package version, which causes execution of whatever package version is current at runtime. That creates a supply-chain risk: a compromised publisher, typo-target, or malicious update could execute arbitrary code on the user's system during discovery or installation workflows.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

Using npx skills find without a pinned version means the command fetches and executes a mutable remote package. Even though this invocation is presented as a search action, it still trusts code from the registry at execution time and can become an arbitrary-code-execution vector if the package or dependency chain is compromised.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

The unpinned npx skills add <package> command executes a mutable CLI and then installs additional remote content, compounding supply-chain exposure. An attacker controlling the package, its dependencies, or the resolved skill source could influence both the installer and the installed artifact.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

npx skills check is still an execution of an unpinned remote package, so it inherits the same supply-chain and arbitrary-code-execution risk. Although the action itself is less invasive than installation, compromise of the CLI would still impact the local environment.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

npx skills update without version pinning runs mutable remote code and then performs update operations, increasing the blast radius of any compromise. A malicious release could both execute code immediately and alter installed skills or related user environment state.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

The search instruction explicitly tells the agent to run npx skills find [query] with no fixed version. That means normal use of the skill directs execution of unpinned remote code as part of routine user assistance, making the unsafe behavior central to the skill's purpose.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

This example command is illustrative, but it still trains users or agents to execute an unpinned npx package for React performance searches. Repetition increases the likelihood that unsafe usage is copied directly into production environments.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

This PR-review search example uses the same floating npx skills invocation, preserving the same supply-chain exposure. The fact that it is an example does not remove the risk because users commonly copy/paste these commands verbatim.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

This changelog search example again relies on an unpinned executable package from the registry. Any compromise in the package publishing path would convert a benign search example into arbitrary code execution when copied by a user or agent.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding

The example response includes npx skills add ... with an unpinned CLI, directly encouraging installation from a mutable execution path. Because this step installs new capability packages, compromise could result in persistent malicious tooling being added in addition to immediate code execution.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

This instruction tells the agent it can install skills using an unpinned npx command, combining arbitrary remote code execution risk with package installation. In context, this is especially dangerous because the skill is designed to autonomously discover and install third-party extensions, so the unsafe execution path is likely to be exercised frequently.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding

Suggesting npx skills init without version pinning still directs execution of mutable remote code, even though it is a project-initialization command rather than an install/update command. A compromised CLI could abuse the initialization flow to write malicious files or execute arbitrary code locally.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding

The tips section normalizes npx skills usage without version pinning, reinforcing an unsafe operational pattern throughout the skill. Broad repetition increases the chance that agents and users adopt insecure defaults for all skill-management tasks.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.