Back to skill

Security audit

find-skills

Security checks for vulnerabilities and agentic risk

Overview

This skill is review-worthy because it can steer broad requests into running unpinned package commands and globally installing external skills with confirmations skipped.

Install only if you are comfortable letting the agent search for and install third-party skills. Prefer pinned CLI and skill versions, inspect the source repository before installing, avoid global installs unless needed, and do not use confirmation-skipping flags for unfamiliar packages.

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

Error
Location
SKILL.md:27
Finding
Unpinned Third-Party Package Execution and Global Skill Installation<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 27–34 and 80–86 **Vulnerability Type**: Unpinned dependency execution and installation from insufficiently validated external sources **Risk Level**: High ### Vulnerable Code Snippets `SKILL.md`, lines 27–34: ```markdown **Key commands:** - `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 **Browse skills at:** https://skills.sh/ ``` `SKILL.md`, lines 80–86: ```markdown ### Step 4: 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 ``` ``` ### Technical Analysis The skill instructs the agent to invoke `npx skills` without pinning the CLI package to a reviewed version or enforcing an integrity hash. Depending on the local npm configuration and cache state, `npx` may download and execute the package resolved from the configured registry at invocation time. The effective executable can therefore differ from the version originally reviewed. The workflow also permits installation of skills from GitHub or unspecified “other sources.” It does not require verification of repository ownership, immutable commit identifiers, release signatures, checksums, package contents, or an approved-source allowlist. Search results may therefore introduce compromised, replaced, typo-squatted, or intentionally malicious packages. The recommended installation command combines `-g`, which installs the skill at user scope, with `-y`, which suppresses confirmation prompts. This reduces the opportunity for the user to inspect package provenance and contents before installation. A malicious installed skill could subsequently influence agent behavior or execute instructions whenever that skill is loaded. ### Attack Path 1. An attack ...[truncated 1861 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin the Skills CLI to an explicitly reviewed version rather than invoking an unversioned package: ```bash npx --yes skills@<reviewed-version> find <query> ``` Prefer a lockfile-controlled local dependency and verify the package with an approved integrity hash. 2. Restrict installations to an explicit allowlist of trusted owners and repositories. Do not permit arbitrary “other sources” by default. 3. Pin every installed skill to an immutable commit SHA or cryptographically verified release rather than a mutable branch, tag, or search-result alias. 4. Remove `-y` from the default installation workflow. Before installation, display the resolved repository URL, owner, exact commit, package version, requested installation scope, and integrity information, then require explicit user confirmation. 5. Avoid `-g` by default. Install into a project-scoped or isolated directory with least privilege so that an untrusted skill cannot automatically affect unrelated projects or future sessions. 6. Download and inspect package contents before activation. Review instruction files, scripts, lifecycle hooks, executable files, symbolic links, and dependency manifests. Reject unexpected binaries, remote payload retrieval, obfuscated content, or privilege-sensitive commands. 7. Disable or ignore package lifecycle scripts during acquisition where supported, and execute reviewed components in a sandbox with restricted filesystem, network, credential, and environment-variable access. 8. Document a removal and incident-response procedure for installed skills, including recording provenance and exact versions so compromised components can be identified and revoked. ]]>
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
Confidence
96% confidence
Finding
The metadata description says the skill should be used whenever users ask broad questions like 'how do I do X' or express interest in capabilities, which overlaps heavily with ordinary assistance requests. That broad trigger surface can cause the agent to invoke a skill that searches for and promotes external installations in situations where the user did not clearly ask for software discovery, increasing the chance of unnecessary exposure to third-party code.

Vague Triggers

Medium
Confidence
93% confidence
Finding
The usage conditions are ambiguous and expansive, including users who merely ask 'can you do X' or wish they had help in a domain. In context, this makes the skill more dangerous because it can steer routine conversations into external package discovery and installation workflows without clear necessity or informed user consent.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The skill repeatedly instructs use of `npx skills` without pinning a specific package version, which means execution and installation behavior can change over time or be influenced by a compromised upstream package or dependency chain. Because this skill is explicitly about discovering and installing third-party extensions, unpinned execution materially increases supply-chain risk and can lead to arbitrary code execution in the user's environment.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
This command reference uses `npx skills` without a pinned version, causing the skill to rely on whatever package version resolves at runtime. In a package-manager workflow that discovers and installs more code, that exposes users to upstream tampering, typosquatting, or unexpected behavior changes that could execute arbitrary code.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The skill recommends `npx skills add <package>` with no version pinning for the CLI, leaving the command dependent on a mutable remote package resolution. Since this workflow installs additional skills from external sources, the unpinned bootstrap tool compounds supply-chain exposure and increases the chance of malicious code execution.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
Using an unpinned `npx skills check` invocation means metadata and behavior come from whatever package version is current at execution time. While `check` is less directly risky than `add`, it still requires running remote package code and therefore carries supply-chain and arbitrary execution concerns.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The `npx skills update` recommendation is unpinned, so users may execute a changed or malicious version of the CLI while also updating installed skills from external sources. That combination can amplify supply-chain compromise impact across all installed skills.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The search step instructs running `npx skills find [query]` without pinning the CLI version. Even a search command executes remote package code, and in this skill's context it is the entry point into a broader install flow for third-party extensions, making the risk meaningful.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
This example command uses the same unpinned `npx skills` pattern and therefore inherits the same supply-chain risk. Although it is illustrative rather than imperative, users often copy-paste examples directly, so the unsafe pattern is likely to be propagated.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
This example search command executes an unpinned package via `npx`, allowing runtime behavior to drift or be subverted upstream. In a discovery/install skill, example commands are especially sensitive because they normalize executing mutable remote tooling.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
The sample `npx skills find changelog` command repeats the unpinned package execution issue. Even though the immediate action is only discovery, it still runs code from an unversioned remote package and can expose the user to compromise.

Rp1

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding
The install instruction shown to the user includes `npx skills add ...` with an unpinned CLI reference. Although the skill package target includes a version-like selector, the bootstrap CLI itself remains mutable and can be the compromise point.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
This line recommends `npx skills add <owner/repo@skill> -g -y`, which combines unpinned remote package execution with automatic, non-interactive global installation. That greatly increases the blast radius of any compromised CLI or skill package by installing code user-wide without an approval checkpoint.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The skill tells the agent it can install external skills using `-g -y`, which performs a global, non-interactive installation and suppresses confirmation. This is dangerous because it removes a meaningful consent checkpoint, expands persistence across the user's environment, and encourages the agent to make security-sensitive system changes on the user's behalf with minimal friction.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Static analysis

No suspicious patterns detected.