Back to skill

Security audit

ClawhHub Skill Publisher

Security checks for vulnerabilities and agentic risk

Overview

This skill has a coherent publishing purpose, but its publish command template can mishandle untrusted values and could lead to unintended local command execution.

Review before installing. Use this skill only when you explicitly intend to publish a specific skill, verify the folder, slug, version, and changelog, and avoid publishing metadata containing shell metacharacters until the workflow uses safer argument handling.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:97
Finding

Shell Command Injection Through Unvalidated Publishing Parameters

Content
View full analysis
\ --slug \ --name "" \ --version \ --changelog "" \ --tags latest ``` ### Technical Analysis The publishing workflow directs the agent to interpolate dynamic values into a shell command. These values include user-provided data and metadata read from the skill being published: - `` - `` - `` - `` - `` The folder path, slug, and version are unquoted. Consequently, shell separators, substitutions, redirections, and additional arguments in these values may be interpreted by the shell. Although name and changelog are enclosed in double quotes, double quotes do not suppress shell command substitution. A value containing syntax such as `$(command)` or backticks can therefore execute a command when the generated shell command is evaluated. No validation, canonicalization, safe argument-array invocation, or shell-escaping procedure is specified before execution. ### Attack Path 1. An attacker supplies a malicious changelog, version, slug, folder name, or `name` field in the target skill's `SKILL.md`. 2. For example, the attacker provides a changelog containing `$(malicious-command)`. 3. The agent follows the documented workflow and inserts that value into the `clawhub publish` shell command. 4. The shell evaluates the command substitution even though the changelog is surrounded by double quotes. 5. The injected command executes with the same operating-system identity and permissions as the agent or CLI process. 6. The legitimate publication command may then continue, fail, or be manipulated to conceal the injected execution. ### Impact Assessment Successful exploitation permits arbitrary local command execution with the privileges of the account running the agent. Dep ...[truncated 550 chars]
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Read `SKILL.md` from the skill folder to extract:

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger logic explicitly says the skill should activate even when the user only says generic terms like '发布' or 'publish' in a loosely related context. Overly broad activation can cause the agent to enter a publishing workflow and prepare marketplace release actions without sufficiently clear user intent, increasing the chance of accidental publication or unintended disclosure of local skill metadata.

Content

No source excerpt is available for this finding.

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
88% confidence
Finding

Automatically listing ~/.claude/skills/ enumerates local assets and reveals skill names/slugs that may contain sensitive project identifiers. In the context of a marketplace publishing skill, this disclosure is not necessary until the user has confirmed they want to browse local skills, so automatic enumeration increases exposure of local environment information.

Content

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

Check if the user already specified a path or skill name. If not, list available skills:

bash
ls ~/.claude/skills/

If there's only one skill, use it directly. If there are multiple, ask the user which one to publish.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

Several required user-facing prompts are written only in Chinese, including the version-selection, changelog, confirmation, success, and optional update messages. The file does not say to match the user's language or ask for a language preference, so it effectively imposes a specific language without opt-in.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The eval prompt uses a very broad trigger phrase ("发布skill") that can validate or encourage invocation on ambiguous user input rather than requiring clear publish intent plus a target skill. In a publishing skill, accidental invocation is more dangerous than in a read-only skill because it can lead to unintended release actions, version bumps, or disclosure of unpublished artifacts.

Content

No source excerpt is available for this finding.