Back to skill

Security audit

skill-radar

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent skill finder, but it uses automatic triggers and unpinned remote commands that can globally install third-party skills.

Review before installing. Use this only if you are comfortable with the agent searching external services and, after selection, running an unpinned npm-based installer that can add third-party skills globally. Prefer pinning the installer version, verifying the selected skill source, and using project-local or reversible installation where possible.

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

Unpinned npm Package Execution and Global Third-Party Skill Installation

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:62 and SKILL.md:128
Vulnerability Type: Supply-chain exposure through unpinned remote dependencies
Risk Level: Medium

Vulnerable Code

At SKILL.md:62:

bash
npx -y skills@latest find <keywords> -y 2>&1

At SKILL.md:128:

bash
npx -y skills@latest add "{owner/repo@skill}" -g -y

Technical Analysis

The documented workflow executes skills@latest through npx. The latest tag is mutable, so the code executed during a future invocation may differ from the version reviewed during this audit. The -y option suppresses the normal installation confirmation.

The installation workflow also accepts a dynamically selected external skill identifier and installs it globally. The documented validation process considers popularity, repository reputation, stars, update activity, and external-service requirements, but it does not require:

  • An exact package version or immutable repository commit.
  • Package integrity hashes or signature verification.
  • Inspection of scripts and lifecycle hooks before execution.
  • Installation into a sandbox or restricted environment.
  • Security review of every file in the selected skill.

Consequently, compromise of the npm package, its publishing account, an upstream repository, or a selected search result could cause attacker-controlled code or instructions to be executed or installed.

Attack Path

  1. An attacker compromises the npm package or publishing account associated with skills, or compromises an upstream repository returned by the search workflow.
  2. The attacker publishes a malicious release under the mutable latest tag or modifies a selectable skill.
  3. A normal skill search causes npx -y skills@latest to download and execute the malicious release without an interactive package-installation prompt.
  4. Alternatively, the malicious upstream skill is selected based on metadata such as stars, installation count, or ap ...[truncated 1059 chars]
Remediation
View remediation

Remediation Suggestions

  1. Replace skills@latest with an exact, reviewed version:
    bash
    npx -y skills@X.Y.Z find <keywords> -y
    
  2. Pin the dependency with a lockfile and integrity metadata where the execution environment supports them.
  3. Resolve candidate skills to an immutable repository commit rather than installing from a mutable branch or tag.
  4. Verify package provenance, signatures, checksums, ownership history, and repository identity before execution.
  5. Download candidate skills into a temporary isolated directory and inspect all files, including lifecycle scripts, executables, nested dependencies, and agent instructions.
  6. Run package discovery and installation in a sandbox with restricted filesystem access, minimal environment variables, no unnecessary credentials, and constrained network access.
  7. Remove unattended confirmation flags from security-sensitive installation operations and show the user the exact package, version, repository, commit, destination, and requested permissions before proceeding.
  8. Prefer project-local installation over global installation. If global installation is necessary, require a separate explicit confirmation that explains its cross-project and cross-session scope.
  9. Add an allowlist for trusted package owners and repositories, while still requiring immutable version pinning and content review.
  10. Perform a post-installation integrity check and provide a documented removal procedure.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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
Findings (11)

Vague Triggers

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The YAML metadata enables auto: true with broad trigger phrases like 'find skill' and a high priority, making autonomous activation easy even when user intent is ambiguous. In a skill that performs external search and can lead to package installation, over-broad triggering increases the chance of unintended network access and execution of third-party tooling.

Content

No source excerpt is available for this finding.

Vague Triggers

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The markdown trigger section extends activation to cases where the agent feels 'unfamiliar' with a task or has 'multiple failed attempts', which are subjective conditions with no safety boundary. Because this skill can search external sources and install tooling, such vague autonomy materially increases the attack surface and likelihood of unapproved actions.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill introduces a workflow that performs local enumeration, network queries to external services, and eventual package installation, but the opening section does not clearly disclose these side effects or require informed consent. Users may not realize that asking for help finding a skill can trigger outbound requests and potentially lead to execution/installation pathways.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The skill instructs the agent to execute npx -y skills@latest, which fetches and runs the latest package version from the registry at execution time. This creates a supply-chain risk because future compromised or breaking releases could be executed automatically, especially since this skill is designed for autonomous use and package discovery/installation.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The installation step again uses npx -y skills@latest add ..., allowing unreviewed code from the newest registry version to run during installation. Because this command installs additional skills globally, compromise of the package or a malicious update could lead to persistent execution of attacker-controlled content.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
83% confidence
Finding

The fallback manual installation guidance uses npx skills add {package} without a pinned version, so users or agents may execute whichever version is current at the time. While presented as guidance rather than the primary workflow, it still promotes unsafe supply-chain practice and could be followed directly.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
80% confidence
Finding

The reference command npx skills find <kw> is unpinned and encourages execution of a remote package version chosen at runtime. Even though this is listed as a tool reference, users and downstream agents may copy it directly, inheriting the same supply-chain exposure.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

The reference command npx skills add <pkg> is especially risky because it combines unpinned remote code execution with installation of additional skill content. That can expand compromise from a one-time command into persistence through globally installed skills or packages.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

SQP-3 applies to all file types and covers language or locale policy violations. Lines L29-L33 explicitly direct users to switch from Chinese to English for searching, but do not present this as optional or provide a user choice, which can conflict with policies requiring language preference or opt-in.

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.