Back to skill

Security audit

Decomposes complex user requests into executable subtasks, identifies required capabilities, searches for existing skills at skills.sh, and creates new skills when no solution exists. This skill should be used when the user submits a complex multi-step request, wants to automate workflows, or needs help breaking down large tasks into manageable pieces.

Security checks for vulnerabilities and agentic risk

Overview

The skill is coherent and not malicious, but it repeatedly recommends unpinned, auto-confirmed global installation of third-party skills.

Review this carefully before installing. It does not show malicious behavior by itself, but avoid copy-pasting the global `-g -y` install commands. Pin the Skills CLI and skill revisions, review any discovered skill source first, prefer local or isolated installation, and require explicit approval before adding third-party skills.

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:276
Finding
Unpinned and Unattended Global Installation of Third-Party Skills<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:276-278` **Additional Locations**: `SKILL.md:141`, `SKILL.md:457-460`, `README.md:15-17`, `README.md:99-102`, `README_CN.md:17-19`, `README_CN.md:101-104` **Vulnerability Type**: Third-party supply-chain exposure through mutable, unverified dependencies **Risk Level**: Medium ### Vulnerable Code `SKILL.md:276-278`: ```yaml skills_to_install: - skill: "owner/repo@skill-name" command: "npx skills add owner/repo@skill-name -g -y" ``` `SKILL.md:457-460`: ```bash # Search the skills ecosystem npx skills find <query> # Install a discovered skill npx skills add <owner/repo@skill> -g -y ``` `README.md:15-17`: ```bash npx skills add https://github.com/clawdbot-skills/task-decomposer -g -y ``` `README.md:99-102`: ```bash # Search the skills ecosystem npx skills find <query> # Install a discovered skill npx skills add <owner/repo@skill> -g -y ``` ### Technical Analysis The Skill instructs agents or users to search a live third-party ecosystem and globally install discovered Skills using `npx` and the flags `-g -y`. Neither the Skills CLI nor the selected Skill is pinned to an immutable version or commit. The workflow also does not require checksum or signature verification, publisher validation, repository review, or an allowlist. Using `npx` can download and execute tooling that is not already installed locally. The generated installation command then retrieves mutable third-party Skill content. The `-y` flag suppresses interactive confirmation, while `-g` expands the installation scope beyond the current project or task. The documented evaluation criteria consider relevance, completeness, and documentation quality, but do not establish dependency provenance or integrity. The user-confirmation statement at `SKILL.md:470` applies to creating a new Skill, not to installing a discovered third-party Skill. No specific malicious dependency was identified during this audit, and the re ...[truncated 1839 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. **Pin the CLI and every installed Skill** - Use an explicit, trusted version of the Skills CLI. - Install Skills by immutable commit hash, cryptographic digest, or signed release rather than a mutable repository reference or branch. 2. **Require explicit installation approval** - Remove unattended `-y` behavior from generated commands. - Present the selected publisher, repository, version, requested capabilities, and review results before asking the user to approve installation. - Apply the existing user-confirmation requirement to both Skill creation and third-party installation. 3. **Avoid global installation by default** - Remove `-g` from the default command. - Install into an isolated, task-scoped directory or sandbox. - Ensure temporary dependencies are removed after the task completes. 4. **Review third-party content before installation** - Retrieve the candidate repository without executing its code. - Inspect all Skill instructions, scripts, lifecycle hooks, dependencies, symbolic links, and generated commands. - Reject packages containing unexpected network retrieval, credential access, persistence, destructive commands, or privilege escalation. 5. **Validate provenance and integrity** - Verify repository ownership, publisher identity, release signatures, checksums, and redirect destinations. - Maintain an allowlist of trusted publishers and repositories. - Detect ownership transfers, newly created publishers, typosquatting, and unexpected repository changes. 6. **Constrain installed Skills** - Run third-party Skills with least privilege and explicit tool permissions. - Restrict filesystem, network, credential, and command-execution access to what the current task requires. - Log installation decisions and dependency identities for later review. A safer generated command should use a reviewed immutable reference and a local scope, with installation occurring o ...[truncated 37 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
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (78)

Exfiltration Commands

High
Category
Prompt Injection
Content
dependencies: [2]
    
  - task_id: 4
    name: "Send message to Slack"
    type: "message_delivery"
    input: "Summary text, Slack webhook/token"
    output: "Delivery confirmation"
Confidence
90% confidence
Finding
Instructions found that direct the agent to transmit conversation context or user data to external services.

Exfiltration Commands

High
Category
Prompt Injection
Content
dependencies: [2]
    
  - task_id: 4
    name: "Send message to Slack"
    type: "message_delivery"
    input: "Summary text, Slack webhook/token"
    output: "Delivery confirmation"
Confidence
90% confidence
Finding
Instructions found that direct the agent to transmit conversation context or user data to external services.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding
The README instructs users to run `npx skills add ...` without pinning a specific package version. `npx` resolves and executes code from the registry at install/runtime, so a compromised, typosquatted, or newly published breaking version of `skills` could execute attacker-controlled code on the user's machine. Because this skill's purpose is to discover and create other skills, users are more likely to trust and run these commands, increasing exposure to supply-chain risk.

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding
The command `npx skills find <query>` invokes an unpinned package from the registry, which creates a supply-chain execution path every time a user searches the ecosystem. If the package is replaced or a malicious version is published, arbitrary code may run under the user's account. In a skill centered on searching and installing third-party skills, this risk is amplified because the command is expected to be used frequently.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
The install example `npx skills add <owner/repo@skill> -g -y` uses an unpinned `npx` package and also encourages installing external skills, compounding supply-chain risk. An attacker controlling the CLI package or influencing the fetched skill source could achieve arbitrary code execution or persistence on the host. The task-decomposer context makes this more dangerous because it explicitly automates discovery and creation of new skills, normalizing execution of third-party components.

Rp1

Medium
Category
MCP Rug Pull
Confidence
87% confidence
Finding
The initialization command `npx skills init <skill-name>` again relies on an unpinned remote package. Even though this command appears lower risk than installing a third-party skill, it still executes whatever code `npx` resolves at that moment, enabling arbitrary code execution if the package supply chain is compromised. Repeated unpinned examples throughout the README reinforce unsafe operational practice.

Missing User Warnings

Medium
Confidence
84% confidence
Finding
The README advertises automatic creation of new skills without warning that this may create or modify files locally. Because this skill's purpose includes generating new executable artifacts, failing to disclose filesystem changes can lead users to run it in sensitive directories or without adequate review.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The README tells users to install the skill globally with `-g -y` but does not warn that this will modify the local environment and may execute third-party code. In the context of a skill that searches for and creates other skills, this is more dangerous because users are being nudged toward broad, persistent system changes.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding
The README instructs users to run `npx skills add ... -g -y` without pinning a specific package version. This can cause execution of whatever version `npx` resolves at install time, which is a supply-chain risk and especially sensitive because the command performs a global installation that can modify the local environment.

Rp1

Medium
Category
MCP Rug Pull
Confidence
82% confidence
Finding
The command `npx skills find <关键词>` relies on an unpinned `skills` package, so users may execute an unexpected or compromised version. Even though this is a search command, it still requires trusting remotely resolved code at runtime.

Rp1

Medium
Category
MCP Rug Pull
Confidence
87% confidence
Finding
The README recommends `npx skills add <owner/repo@skill> -g -y`, combining an unpinned package invocation with automatic global installation of a fetched skill. This increases supply-chain exposure because both the CLI and the installed skill may change over time or be replaced maliciously.

Rp1

Medium
Category
MCP Rug Pull
Confidence
78% confidence
Finding
The `npx skills init <技能名称>` example uses an unpinned package, meaning project scaffolding behavior depends on whatever package version is resolved at runtime. This is a weaker case than installation, but it still exposes users to unreviewed remote code execution and file-generation behavior.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The description says the skill should be used for complex multi-step requests, workflow automation, or breaking down large tasks, which is broad enough to trigger on many ordinary user prompts. Over-broad activation increases the chance the agent will invoke a skill that searches for, installs, or creates additional skills unnecessarily, expanding exposure to external code and unsafe automation paths.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
The skill instructs the agent to run `npx skills ...` without pinning an exact package version, which permits execution of whatever version is currently published or resolved from the registry at runtime. In a skill whose purpose is discovering and installing additional capabilities, this expands the supply-chain risk substantially because an attacker who compromises the package, dependency chain, or resolution path could gain code execution.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
This command references `npx skills` without a pinned version, so the runtime may fetch and execute unreviewed code from the package registry. Because the skill is designed to search for and later install other skills, an upstream package change or registry compromise could turn normal usage into arbitrary code execution.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
Using `npx skills` without version pinning creates a supply-chain execution path where the resolved package can change over time without review. In the context of an automation skill that may be routinely reused, this can silently introduce malicious behavior into future executions.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
The unpinned `npx skills` invocation allows execution of mutable third-party code from the npm ecosystem. Since the command is presented as a normal step in the skill workflow, users or agents may execute it automatically, increasing exposure to package takeover or dependency compromise.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
This occurrence again relies on a floating `npx skills` resolution, which is dangerous because it delegates trust to the latest published package state rather than a reviewed artifact. In a skill that orchestrates other tools and skills, compromise here could cascade into broader system access.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
The skill encourages searching via `npx skills` without constraining the version, making the command susceptible to supply-chain substitution or malicious updates. Because this is part of the core search process, it is likely to be executed frequently and by default.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
The example command uses `npx skills init` with no version pinning, which can execute a changed or malicious package at the moment a new skill is created. Since initialization often writes files and scaffolding, a compromised package could implant unsafe content or scripts into newly generated skills.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
This installation instruction invokes `npx skills add ... -g -y` without pinning the package version, creating both supply-chain risk and elevated impact because it installs globally and auto-confirms. A compromised CLI could execute arbitrary code and persist tooling changes system-wide.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
The GitHub example includes another unpinned `npx skills find` command, so the workflow depends on mutable remote code. Even in documentation, repeated unsafe patterns normalize insecure execution and increase the chance that agents or users will follow them automatically.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
This example repeats unpinned package execution via `npx skills`, preserving the same risk of arbitrary code execution through package compromise or dependency drift. Because it appears in a worked example, it is especially likely to be copied directly into operational use.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
The best-practice section still endorses a workflow built around unpinned `npx skills` commands, which undermines secure operational guidance. This is dangerous because readers may interpret it as approved default behavior and automate it broadly.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
The integration section instructs use of `npx skills find` without version pinning, again exposing the environment to supply-chain compromise through dynamic registry resolution. Given that this skill is about composing additional capabilities, successful exploitation could influence many downstream tasks and tool choices.

Static analysis

No suspicious patterns detected.