Back to skill

Security audit

Skill Picker

Security checks for vulnerabilities and agentic risk

Overview

The skill has a clear discovery purpose, but it automatically runs an unpinned npx command under broad triggers, which deserves review before use.

Install only if you are comfortable with the agent running the skills CLI via npx for searches. Prefer a pinned or locally installed audited `skills` CLI, and configure the agent to ask before first-time package retrieval or proactive searches.

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

Unpinned Third-Party Package Execution Through npx

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 96–103
Vulnerability Type: Unpinned npm dependency execution
Risk Level: Medium

Vulnerable Code

markdown
### Step 2: Search with intent-based queries

```bash
# This is the ONLY npx command this skill executes autonomously
npx skills find [intent-based query]
text

### Technical Analysis

The skill instructs the agent to autonomously execute `npx skills find` without pinning the `skills` package to a reviewed version or verifying its integrity. If the package is unavailable locally, `npx` may retrieve it and its transitive dependencies from the configured npm registry before running its CLI entry point.

Consequently, the code executed at invocation time is not fully represented by the audited project and may change after this skill has been reviewed. A compromised package release, dependency, publisher account, or registry could cause arbitrary package or lifecycle code to run under the invoking user's account. The fact that the intended command performs only a search does not constrain what the downloaded package itself can do.

No evidence was found that the current skill intentionally selects a typosquatted or known-malicious package. The risk arises from autonomous execution of an unpinned external dependency.

### Attack Path

1. A user asks the agent to discover or recommend a skill.
2. The loaded instructions direct the agent to run `npx skills find [query]`.
3. `npx` resolves the unversioned `skills` package through the configured npm registry and may download the package and its dependency graph.
4. An attacker who has compromised the package, a transitive dependency, its publisher account, or the package-resolution infrastructure publishes malicious code.
5. `npx` executes the resolved CLI or associated lifecycle behavior with the permissions and environment of the agent process.
6. The malicious code can perform operations unrelated to registry search before returning 
...[truncated 681 chars]
Remediation
View remediation

Remediation Suggestions

  1. Replace the floating package reference with an exact, previously audited version, for example:

    bash
    npx skills@<audited-exact-version> find [intent-based query]
    
  2. Prefer declaring the CLI as a project dependency, committing a lockfile, and invoking the lockfile-controlled local executable:

    bash
    npx --no-install skills find [intent-based query]
    

    This prevents npx from silently retrieving a missing package during skill execution.

  3. Install dependencies in a controlled build or provisioning phase using lockfile integrity data rather than downloading executable packages during user-facing operations.

  4. Verify the exact npm package identity, publisher, provenance, signatures or attestations where available, and the complete transitive dependency tree before approving a version.

  5. Configure a trusted registry and consider disabling dependency lifecycle scripts where compatible with the package.

  6. Require explicit user confirmation before any first-time external package retrieval, clearly stating that third-party code will be downloaded and executed.

  7. Run the search utility in a restricted environment with minimal filesystem access, sanitized credentials and environment variables, limited network access, and no elevated privileges.

Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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
Findings (23)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The activation criteria are broad enough to trigger on common requests such as 'how do I do X' or 'can you do X', causing the skill to run autonomously in many ordinary conversations. Because this skill executes npx-based searches, over-triggering expands the attack surface and can lead to unnecessary external command execution and unsolicited package recommendations.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding

The skill declares and relies on npx without pinning a package/version, which means execution depends on whatever package resolution returns at runtime. If the upstream package, dependency chain, or namespace is compromised, the agent could run attacker-controlled code during skill execution.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This line instructs autonomous execution of npx skills find [query] without identifying an exact package/version. Unpinned npx execution is risky because it can fetch and execute code from the registry at runtime, exposing the environment to supply-chain compromise.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The security note still relies on unpinned npx skills find, so the command remains vulnerable to package substitution or malicious updates even if install commands are not auto-run. Search-only behavior reduces privilege escalation scope somewhat, but the core issue is arbitrary remote code execution through package resolution.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The proactive trigger conditions are subjective ('friction', 'workflow opportunity', 'capability gap') and permit the skill to suggest itself in ambiguous situations without well-defined boundaries. In this context, that increases the frequency of autonomous npx skills find execution and raises the chance of manipulative or unwanted skill-install recommendations.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The command template authorizes the skill to execute an unpinned npx skills find [intent-based query]. Any autonomous command execution path using bare npx introduces a supply-chain attack surface that could lead to code execution in the agent's environment.

Content

No source excerpt is available for this finding.

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.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This line explicitly states the skill executes npx skills find [query], again without a pinned version. Because the skill is designed to run this autonomously, compromise of the referenced package could directly lead to malicious code execution when users ask for recommendations.

Content

No source excerpt is available for this finding.

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.

Content

No source excerpt is available for this finding.

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.

Content

No source excerpt is available for this finding.

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.

Content

No source excerpt is available for this finding.

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.

Content

No source excerpt is available for this finding.

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.

Content

No source excerpt is available for this finding.

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.

Content

No source excerpt is available for this finding.

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.

Content

No source excerpt is available for this finding.

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.

Content

No source excerpt is available for this finding.

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.

Content

No source excerpt is available for this finding.

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.

Content

No source excerpt is available for this finding.

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.

Content

No source excerpt is available for this finding.

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.

Content

No source excerpt is available for this finding.

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.

Content

No source excerpt is available for this finding.

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.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The commands reference section explicitly lists npx skills find [query] as executed by the skill. Because it uses a bare package reference with runtime resolution, it exposes the agent to supply-chain attacks and arbitrary code execution.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.