Back to skill

Security audit

find-skills-combo

Security checks for vulnerabilities and agentic risk

Overview

This skill is a Markdown-only recommendation helper, but it normalizes unpinned, unattended global installation of third-party skills.

Review carefully before installing. Use the skill only for deliberate skill-combination discovery, do not run generated install commands blindly, prefer pinned and reviewed package versions, avoid `-g -y` unless you explicitly want global unattended installs, and verify each recommended skill's publisher, source, and contents first.

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:29
Finding
Unpinned Third-Party Execution and Unattended Global Skill Installation## Vulnerability Details **File Location**: `SKILL.md`, lines 29–33, 128–138, and 247–249 **Vulnerability Type**: Supply-chain exposure through unpinned packages and globally installed third-party skills **Risk Level**: High ### Vulnerable Code `SKILL.md`, lines 29–33: ```markdown - `npx skills find [query]` — Search for skills by keyword - `npx skills add <package>` — Install a skill from GitHub or other sources - `npx skills add <package> -g -y` — Install globally, skip confirmation - `npx skills check` — Check for skill updates - `npx skills update` — Update all installed skills ``` `SKILL.md`, lines 128–138: ```markdown 2. Run all exact-match searches in parallel first: ```bash npx skills find "<exact-match-keywords>" ``` 3. Check result counts. For any subtask with < 3 candidates from exact-match, run the functional-match search. If still < 3, run domain-match. ``` `SKILL.md`, lines 247–249: ```bash npx skills add owner/repo@skill-a -g -y npx skills add owner/repo@skill-b -g -y npx skills add owner/repo@skill-c -g -y ``` ### Technical Analysis The Skill directs the agent to execute `npx skills` without pinning the CLI to an immutable, reviewed version. Depending on the local environment and npm cache, `npx` can retrieve and execute the current package version from an external registry. Consequently, the code executed during discovery can differ from the code that existed when this Skill was audited. The Skill also generates installation commands for dynamically discovered repositories and recommends the `-g -y` options. Global installation expands the affected environment beyond the current project, while `-y` suppresses package-specific confirmation. Candidate validation is based primarily on descriptions and relevance ratings; the workflow does not require source inspection, publisher verification, commit pinning, integrity validation, or review of package lifecy ...[truncated 2342 chars]
Remediation
## Remediation Suggestions 1. **Pin the Skills CLI** - Invoke an explicitly reviewed version, such as `npx skills@X.Y.Z`, rather than allowing npm to resolve the latest release. - Prefer an integrity-locked local development dependency over runtime retrieval through `npx`. - Record and verify package hashes or lockfile integrity metadata. 2. **Pin installed skills to immutable revisions** - Resolve each selected repository to a reviewed commit hash. - Do not install from mutable branches, floating tags, or unversioned search-result identifiers. - Display the repository URL and exact commit to the user before installation. 3. **Require security review before installation** - Verify repository ownership, publisher identity, maintenance history, and provenance. - Inspect the skill manifest, scripts, dependency tree, and package lifecycle hooks. - Scan downloaded content for credential access, shell execution, persistence, obfuscation, and unexpected network activity. 4. **Avoid unattended global installation** - Remove `-g -y` from generated commands. - Install into a project-local, isolated directory by default. - Require explicit approval for each exact package, source, version, and requested installation scope. 5. **Use isolation and least privilege** - Perform discovery and installation in a sandbox or disposable container. - Deny access to host credentials, sensitive directories, and unnecessary network destinations. - Run package installation as an unprivileged account and prohibit privilege elevation. 6. **Separate discovery from execution** - Treat search results and third-party descriptions as untrusted metadata. - Download candidates without executing them, complete static review, and only then permit installation. - Present provenance and security-review results alongside relevance ratings. 7. **Control updates** - Do not run broad update comma ...[truncated 163 chars]
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
Findings (28)

Vague Triggers

High
Confidence
97% confidence
Finding
The trigger text is extremely broad, claiming applicability to common requests like 'how do I do X' and even simple 'find me a skill' queries, which can cause over-invocation. In context, over-invocation matters because this skill does not merely advise; it also encourages command execution and installation steps.

YARA rule 'agent_skill_mcp_tool_poisoning_metadata': MCP/tool metadata poisoning indicators in tool schemas or skill manifests [agent_skills]

High
Category
YARA Match
Content
---
name: find-skills-combo
description: Discover and recommend **combinations** of agent skills to complete complex, multi-faceted tasks. Provides two recommendation strategies — **Maximum Quality** (best skill per subtask) and **Minimum Dependencies** (fewest installs). Use this skill whenever the user wants to find skills, asks "how do I do X", "find a skill for X", or describes a task that likely requires multiple capabilities working together. Also use when the user mentions composing workflows, building pipelines, or needs help across several domains at once — even if they only say "find me a skill". This skill
Confidence
80% confidence
Finding
YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Hidden Instructions

High
Category
Prompt Injection
Content
| S3 | skill-name-c | High |

### Install (N skills)
​```bash
npx skills add owner/repo@skill-a -g -y
npx skills add owner/repo@skill-b -g -y
npx skills add owner/repo@skill-c -g -y
Confidence
93% confidence
Finding
The hidden character before the code fence can conceal executable content from cursory review or interfere with downstream parsers and policy checks. In a skill document that already includes risky install commands, hidden formatting increases the chance that unsafe instructions evade detection or appear differently than intended.

Hidden Instructions

High
Category
Prompt Injection
Content
npx skills add owner/repo@skill-a -g -y
npx skills add owner/repo@skill-b -g -y
npx skills add owner/repo@skill-c -g -y
​```
```

**4. Strategy B — Minimum Dependencies (Recommended for lean setup)**
Confidence
93% confidence
Finding
A hidden character near the closing code fence can obfuscate where an executable block ends, potentially affecting rendering, review, or automated analysis. This matters more here because the adjacent content contains install commands that should be highly visible and easy to scrutinize.

Hidden Instructions

High
Category
Prompt Injection
Content
| S3 | skill-name-a | Medium | ↓ High → Medium |

### Install (M skills)
​```bash
npx skills add owner/repo@skill-a -g -y
​```
```
Confidence
93% confidence
Finding
The hidden character around the second install block again suggests instruction obfuscation or at minimum careless formatting in a security-sensitive area. Such invisibility can help dangerous commands bypass manual review or simple text-based scanning.

Hidden Instructions

High
Category
Prompt Injection
Content
### Install (M skills)
​```bash
npx skills add owner/repo@skill-a -g -y
​```
```

The `vs Strategy A` column makes the trade-off transparent — users see exactly what they give up by installing fewer skills.
Confidence
93% confidence
Finding
Another hidden character at the code-fence boundary creates avoidable ambiguity in how commands are displayed and parsed. In the context of system-modifying install examples, this is a meaningful hygiene issue with security implications.

Description-Behavior Mismatch

Medium
Confidence
94% confidence
Finding
The skill's stated purpose is recommendation, but it also instructs direct installation and operational actions, expanding authority beyond what users may reasonably expect from the description. This scope drift is dangerous because it can cause users or agents to grant more trust and execution latitude than warranted.

Vague Triggers

Medium
Confidence
90% confidence
Finding
The "When to Use This Skill" section mixes broad triggers like "can you do X" and "how do I do X" with a later fallback for "genuinely single-domain and simple" tasks, but the boundary between those cases is not sharply defined. Without clearer activation constraints or exclusion examples, agents may invoke this skill for many generic help requests and only decide too late that it was unnecessary.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
The skill repeatedly instructs use of `npx skills` without any version pinning or integrity control, which allows whatever package version resolves at execution time to run code on the host. In a skill that discovers, recommends, and then may install additional packages, this creates a supply-chain execution path where a compromised or malicious upstream package could execute unexpectedly.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
Using unpinned `npx skills find` means the package implementation is fetched dynamically and may change over time, enabling remote code execution through package substitution or compromise. Because this command is core to the skill workflow, the exposure is not incidental but foundational to the skill's operation.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
The key command list normalizes execution of an unversioned package manager entrypoint, increasing the chance users or agents run mutable remote code. In a package-installation context, a compromised package can directly affect the local environment and downstream skill selection flow.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
The install command `npx skills add <package>` uses an unpinned CLI to perform further package acquisition, compounding supply-chain risk at both the CLI and installed package layers. This is especially risky because the skill's purpose encourages acting on search results from an open ecosystem.

Context-Inappropriate Capability

Medium
Confidence
98% confidence
Finding
Including global, non-interactive installation capability in a recommendation skill creates excessive operational power and a low-friction path to environment modification. If misused or paired with untrusted search results, it can lead to silent installation of malicious code across the system.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The documented commands normalize global and auto-confirmed installs without prominent safety warnings, reducing friction for risky actions and making unsafe copy-paste execution more likely. Because the skill deals with packages from external sources, this omission materially increases the chance of supply-chain compromise.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
- `npx skills find [query]` — Search for skills by keyword
- `npx skills add <package>` — Install a skill from GitHub or other sources
- `npx skills add <package> -g -y` — Install globally, skip confirmation
- `npx skills check` — Check for skill updates
- `npx skills update` — Update all installed skills
Confidence
98% confidence
Finding
The explicit 'skip confirmation' guidance promotes autonomous environment changes without a human checkpoint, which is unsafe for a discovery/recommendation skill. Combined with package installation and global scope, this can lead to silent execution of untrusted code with broad system impact.

Rp1

Medium
Category
MCP Rug Pull
Confidence
99% confidence
Finding
An unpinned `npx skills add <package> -g -y` combines mutable remote CLI execution with global, non-interactive installation, creating a high-risk path for silent system-wide compromise. If the CLI or target package is malicious or compromised, the command can modify the environment broadly without a meaningful safety checkpoint.

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding
Unpinned `npx skills check` still executes remotely resolved package code, though the immediate action is less dangerous than installation. It remains a supply-chain risk because even a 'check' action can run arbitrary code in the current environment.

Context-Inappropriate Capability

Medium
Confidence
90% confidence
Finding
Check/update instructions are unrelated to the skill's core discovery role and encourage lifecycle management actions that can modify the environment. This unnecessary breadth increases attack surface and user confusion about what the skill is allowed to do.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
`npx skills update` executes an unpinned package manager action that can modify installed components, multiplying supply-chain and downgrade/upgrade risks. In a skill manifest, recommending updates without version control or provenance review is dangerous because it may normalize broad trust in mutable external code.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
The workflow instructs running `npx skills find` as part of the operational pipeline without pinning, so the skill repeatedly depends on mutable remote code in normal use. This enlarges attack surface because the command is framed as a routine automated step rather than a consciously reviewed action.

Rp1

Medium
Category
MCP Rug Pull
Confidence
99% confidence
Finding
The sample installation block includes unpinned `npx skills add ... -g -y` commands, which could be copied directly and executed, leading to silent global installation through mutable remote code. This is a concrete exploit path because users often trust example code blocks and execute them verbatim.

Rp1

Medium
Category
MCP Rug Pull
Confidence
99% confidence
Finding
This line continues the unsafe pattern of unpinned, auto-confirmed global installation in a ready-to-run example, making accidental or automated execution likely. The danger is heightened because the skill is recommendation-oriented yet embeds direct execution commands that act system-wide.

Rp1

Medium
Category
MCP Rug Pull
Confidence
99% confidence
Finding
The third line in the example preserves the same silent global install behavior, reinforcing a pattern of unsafe operational guidance rather than an isolated wording issue. Multiple copy-pasteable commands increase the probability of compromise across several packages at once.

Rp1

Medium
Category
MCP Rug Pull
Confidence
99% confidence
Finding
This example command again presents unpinned `npx` plus global auto-confirmed installation, this time in the 'minimum dependencies' strategy, which could encourage users to prefer the most operationally dangerous path. Its placement in a recommendation section makes exploitation more likely through persuasive UX rather than technical stealth alone.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
Suggesting `npx skills init` without pinning still relies on mutable remote CLI code, and project scaffolding commands may write files or templates into the workspace. While less severe than global installs, it remains a supply-chain entry point that can alter local codebases.

Static analysis

No suspicious patterns detected.