Back to skill

Security audit

Auto Skill Installer

Security checks for vulnerabilities and agentic risk

Overview

The skill does what it says, but it can automatically add other skills to the agent environment from mutable external sources.

Install only if you are comfortable with an agent finding and adding skills on your behalf. Prefer using it in recommendation mode, require confirmation before every install, avoid global installs, and only install pinned or verified skills from sources you already trust.

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

Unpinned, Non-Interactive Installation of Third-Party Skills

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:90-98, 114-124, 138
Vulnerability Type: Supply-chain exposure through mutable, unpinned external skill sources
Risk Level: Medium

Complete Code Snippet

markdown
### 5. Decide Whether to Install Automatically

Install without asking an extra question only when all are true:

- The user asked to automatically install, or the agent needs the skill to complete the current task.
- One candidate is clearly best.
- The source is trusted enough for the task.
- The installation command will not perform surprising writes outside the normal skills directory.

Otherwise present a short ranked list with a recommendation and wait for the user's choice.

### 6. Install

Use the installer that matches the source:

```bash
# OpenClaw: ClawHub slug into active workspace
openclaw skills install <slug>

# OpenClaw: local skill directory into active workspace
openclaw skills install /path/to/skill --as <slug>

# OpenClaw: shared managed install visible to all local agents
openclaw skills install /path/to/skill --as <slug> --global

# OpenClaw: git source
openclaw skills install git:<owner>/<repo>@<ref> --as <slug>

# Hermes: registry/GitHub/URL skill
hermes skills install <identifier> --yes

# skills.sh / agent skills package
npx skills find "react performance"
npx skills add <owner/repo@skill> -g -y

# OpenAI curated or experimental skill paths
python3 /path/to/skill-installer/scripts/install-skill-from-github.py --repo openai/skills --path skills/.curated/<skill-name>

Hermes notes:

  • hermes skills install accepts registry identifiers and direct HTTP(S) URLs to SKILL.md.
text

### Technical Analysis

The workflow permits an agent to discover and install third-party skills automatically. The documented examples use non-interactive flags such as `--yes` and `-y`, permit global installation, and accept registry identifiers, repository references
...[truncated 2469 chars]
Remediation
View remediation

Remediation Suggestions

  1. Require explicit, informed user approval before every external installation, particularly global installations and sources outside curated registries.
  2. Resolve repositories and packages to immutable commit hashes or fixed versions. Do not install from mutable branches, floating tags, unversioned registry names, or unrestricted direct URLs.
  3. Require cryptographic verification through trusted signatures or published checksums. Fail closed when verification data is unavailable or mismatched.
  4. Download candidates into an isolated quarantine directory before installation. Review SKILL.md, scripts, manifests, hooks, and transitive dependencies before moving content into an active skill directory.
  5. Maintain allowlists for trusted registries, organizations, repositories, and HTTPS domains. Reject redirects or sources outside the allowlist.
  6. Remove unattended --yes and -y defaults from generic examples. Make non-interactive installation available only for preapproved sources pinned to verified immutable artifacts.
  7. Default to workspace-scoped installation. Require separate confirmation for --global because it expands exposure to other agents and future sessions.
  8. Execute verification and installation with least privilege, restricted network access, and filesystem writes limited to a staging directory and the intended skill destination.
  9. Record the source URL, resolved commit or version, digest, review result, destination, and installation time to support later auditing and revocation.
  10. Revalidate the exact downloaded artifact after retrieval rather than relying solely on metadata observed during discovery.
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 (13)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 76)May include surrounding context.

md
- Clear `SKILL.md` frontmatter and concise workflow.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 129)May include surrounding context.

md
- Clear `SKILL.md` frontmatter and concise workflow.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 138)May include surrounding context.

md
- Clear `SKILL.md` frontmatter and concise workflow.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 141)May include surrounding context.

md
- Clear `SKILL.md` frontmatter and concise workflow.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 148)May include surrounding context.

md
- Clear `SKILL.md` frontmatter and concise workflow.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The activation description is broad enough to trigger during many ordinary tasks where the user did not clearly intend environment modification. In a skill that can search, install, and alter local skill directories, over-broad activation increases the chance of unintended execution of risky installer workflows.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding

The skill instructs use of npx skills without pinning an exact package/version, which can fetch and execute whatever package is currently resolved from the registry at runtime. In an auto-installer skill, this is especially dangerous because it turns discovery/install into implicit remote code execution through an unpinned supply-chain dependency.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding

This second npx skills invocation has the same issue: it may download and run an untrusted or changed package version at execution time. Because the skill's purpose is to search for and install more code, this compounds supply-chain risk and can let a malicious package influence subsequent trust decisions.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
91% confidence
Finding

The instruction to 'Install without asking' authorizes autonomous security-relevant decisions, including code selection, retrieval, and installation. In this skill's context, that means the agent can make trust judgments and persist changes without human review, amplifying the risk of mistaken or unsafe installations.

Content

Scanner excerpt · SKILL.md (reported line 90)May include surrounding context.

md
### 5. Decide Whether to Install Automatically

Install without asking an extra question only when all are true:

- The user asked to automatically install, or the agent needs the skill to complete the current task.
- One candidate is clearly best.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill explicitly allows automatic installation and filesystem changes without a strong, mandatory user-facing warning that local environment state will be modified. In context, this is dangerous because the workflow performs installs from external sources and may write into shared or global skill directories.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

Using npx skills find in the install section exposes the workflow to runtime package substitution at the point where the agent is preparing to modify the local environment. An attacker controlling or typosquatting the package, or abusing an upstream compromise, could execute arbitrary code under the user's context.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding

npx skills add <owner/repo@skill> -g -y combines an unpinned runtime package fetch with non-interactive installation into a broader scope (-g). That creates a direct path from supply-chain compromise to unauthorized code execution and persistent environment modification.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill's trigger language is very broad: it claims applicability whenever a user asks what skill to install, asks to automatically find/install skills, describes a task that may require a missing skill, or when an agent merely notices it lacks capability. That can cause over-invocation of a skill that performs discovery and installation, increasing the chance of unnecessary tool use, unintended package/skill installation, and exposure to prompt-injection or supply-chain risk from discovered skills.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.