Back to skill

Security audit

Find Skills.Tmp

Security checks for vulnerabilities and agentic risk

Overview

The skill is coherent and not malicious, but it encourages broad skill discovery plus unpinned remote CLI execution and global non-interactive installation of third-party skills.

Review each skill source before installing, avoid copy-pasting unpinned `npx` commands in sensitive environments, and prefer pinned CLI versions plus non-global installs unless you intentionally want the skill available across 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:26
Finding
Unpinned CLI Execution and Non-Interactive Global Installation of Third-Party Skills## Vulnerability Details **File Location**: `SKILL.md:26-29`, `SKILL.md:48`, and `SKILL.md:84-88` **Vulnerability Type**: Supply-chain risk caused by unpinned dependencies and insufficient validation of third-party packages **Risk Level**: Medium **Vulnerable Code Snippets**: `SKILL.md:26-29` ```bash npx skills find [query] npx skills add <package> npx skills check npx skills update ``` `SKILL.md:48` ```bash npx skills find [query] ``` `SKILL.md:84-88` ```bash npx skills add <owner/repo@skill> -g -y ``` ### Technical Analysis The documented workflow executes the `skills` npm CLI through `npx` without pinning it to a reviewed version. Package resolution can therefore select the version currently published under that npm package name rather than an immutable, previously audited artifact. The workflow subsequently recommends installing skills returned by an external discovery service. It permits packages from GitHub or other sources but does not require validation of the repository owner, immutable commit, package integrity, dependency tree, or downloaded skill contents. The suggested installation command uses both `-g` and `-y`. Global installation expands the package's availability beyond the current project, while non-interactive confirmation reduces the opportunity for the user to inspect the source and resolved package identity before installation. If the CLI package, search results, repository, maintainer account, or downstream dependency is compromised, attacker-controlled installation behavior or skill instructions could be introduced. This is a supply-chain weakness rather than evidence that the currently documented CLI or any specific referenced repository is malicious. ### Attack Path 1. An attacker compromises the `skills` npm package, a listed skill repository, its maintainer account, or a downstream dependency. Alternatively, the attacker publishes a deceptive or similarly n ...[truncated 1748 chars]
Remediation
## Remediation Suggestions 1. Pin the CLI to an exact, reviewed version: ```bash npx --yes skills@<exact-reviewed-version> find [query] ``` Record the approved version and update it only after review. 2. Remove automatic confirmation from installation commands. Require explicit user approval immediately before any package is installed: ```bash npx skills@<exact-reviewed-version> add <owner/repo@skill> ``` 3. Prefer project-local or sandboxed installation instead of `-g`. Global installation should be an explicit exception with a documented justification. 4. Pin installed skills to immutable commit hashes or cryptographically verifiable releases rather than mutable branches or tags. 5. Before installation, verify: - The exact repository owner and canonical repository URL. - The selected commit or release. - Package checksums or integrity metadata, where supported. - Install scripts and dependency manifests. - The complete skill instructions and any bundled executable files. - Maintainer reputation and repository history. 6. Restrict installation to an allowlist of reviewed owners and repositories. Do not automatically trust identifiers returned by external search results. 7. Perform installation and initial execution in a sandbox with restricted filesystem, credential, environment-variable, and network access. 8. Display the resolved package identity, version, source URL, and requested installation scope to the user before requesting approval.
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
94% confidence
Finding
The metadata description is broad enough that the skill may activate for generic user questions about how to do something, even when the user did not request package discovery or installation. Over-broad invocation can lead the agent to steer users toward external code acquisition unnecessarily, increasing exposure to supply-chain and unintended-action risks.

Vague Triggers

Medium
Confidence
92% confidence
Finding
The 'When to Use This Skill' section includes ambiguous triggers like asking 'how do I do X' or 'can you do X,' which lack clear boundaries and can cause the skill to fire in many unrelated conversations. In context, mistaken activation is more dangerous because the skill's next steps involve searching for and potentially installing third-party capabilities.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
The skill repeatedly instructs use of `npx skills` without pinning an exact package version or integrity-verified source. Because `npx` resolves and executes code from the registry at runtime, a compromised upstream package, typosquatted dependency, or breaking update could cause arbitrary code execution in the user's environment.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
This command reference uses `npx skills` without a fixed version, which means the executed code may vary over time and can pull malicious or unreviewed updates. In a skill whose purpose is discovering and installing more code, this increases supply-chain risk because it normalizes direct execution of remote package manager content.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
The instruction to use `npx skills add` is unpinned, so the package manager bootstrap itself is mutable and may execute attacker-controlled code if the package or dependency chain is compromised. Since this command leads directly to installation of additional packages from external sources, it compounds supply-chain exposure.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
Using `npx skills check` without version pinning still executes whatever package version is currently resolved from the registry. Even apparently read-only commands are dangerous because the package lifecycle and command implementation can run arbitrary code locally.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
The update command references a mutable CLI entrypoint via `npx skills`, creating a two-layer trust problem: the updater itself is unpinned, and it is used to update installed skills. An attacker controlling the package or a dependency could gain code execution and alter installed tooling.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
The example `npx skills find [query]` again normalizes execution of an unpinned remote package. In aggregate, these repeated examples encourage unsafe operational habits and make users more likely to run mutable code without verification.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
This line contains a concrete unpinned `npx skills` invocation for searching React-related skills. Concrete examples are especially risky because users will copy-paste them directly, executing whatever version is currently published.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
The PR review search example uses unpinned `npx skills`, exposing users to arbitrary code execution from the package resolution process. The benign search purpose does not reduce the technical risk because command execution happens before any search results are shown.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
This example repeats the same unsafe pattern: direct execution of an unpinned package from the registry. Because the skill is designed to be a discovery funnel for more installations, the trust boundary is already broad, making unpinned execution more dangerous in context.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
The install command shown to users is mediated by an unpinned `npx skills` bootstrap, which can execute malicious code before the intended skill installation occurs. This is especially sensitive because the user is being directed to install third-party code from GitHub or other sources.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
The recommendation to install with `npx skills add <owner/repo@skill> -g -y` is particularly dangerous because it combines unpinned remote code execution with global installation and automatic confirmation bypass. This can silently install unreviewed code system-wide for the user account, expanding persistence and blast radius.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The skill tells the agent it can install skills using `-g -y` but does not prominently warn that this performs global user-level installation and suppresses confirmation prompts. This weakens informed consent and makes it easier for the agent to carry out impactful system changes with minimal user friction, especially when combined with third-party package sources.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
The instruction to use `npx skills init` is again unpinned and therefore executes mutable registry code. Even initialization commands can run arbitrary scripts and create files that shape future trusted workflows.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
The fallback guidance to run `npx skills init my-xyz-skill` repeats the same supply-chain weakness. Because this appears in a 'no results found' path, users may be nudged into executing the command without the scrutiny they might apply to an install action.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
This occurrence also references `npx skills` without version pinning, preserving the same arbitrary code execution risk from mutable package resolution. Repetition throughout the skill makes the unsafe pattern systemic rather than incidental.

Static analysis

No suspicious patterns detected.