Back to skill

Security audit

ClawHub技能探索工具

Security checks for vulnerabilities and agentic risk

Overview

This skill is presented as a skill-search tool, but its package also contains administrative publishing, ranking-optimization, credential, and unsafe command-execution behavior that users should review before installing.

Install only if you are comfortable reviewing and removing the bundled maintenance scripts first. The search functionality is coherent, but the package also includes publishing workflows, a plaintext ClawHub token, unsafe shell command construction, hard-coded local paths, and documented scheduled ranking optimization. Treat any included token as compromised and avoid running the publish, upgrade, optimization, or delayed-publish scripts without a separate administrative review.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • System PersistenceInstalls backdoors, hooks, services, or scheduled tasks that survive the run
  • 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
Findings (6)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/clawhub_skill_explorer.py:57
Finding

Shell Command Injection Through User-Controlled Skill Slugs

Content
View full analysis
str: """Execute ClawHub CLI command""" try: result = os.popen(cmd).read().strip() return result except Exception as e: print(f"❌ Error executing command: {e}") return "" ``` User-controlled values are passed to this method at the following call sites: ```python output = self._execute_clawhub_cmd(f"clawhub inspect {slug}") ``` ```python output = self._execute_clawhub_cmd(f"clawhub star {slug}") ``` The `slug` values originate from unrestricted command-line arguments: ```python view_parser.add_argument("slug", help="技能slug") favorite_parser.add_argument("slug", help="技能slug") ``` ### Technical Analysis `os.popen()` executes its string argument through the operating-system shell. The `view` and `favorite` commands interpolate an unvalidated, user-controlled `slug` directly into that shell command. An attacker can include shell metacharacters such as semicolons, pipes, command substitutions, or redirections in the slug. The shell will interpret those characters rather than treating the entire value as one ClawHub argument. The existence check in `favorite_skill()` reduces straightforward exploitation through that command, but it is not a safe command-execution boundary. The `view` command passes the supplied slug directly to the vulnerable sink without first constraining it to the expected slug format. ### Attack Path 1. An attacker convinces a user or automation process to invoke the `view` command with a malicious slug. 2. `argparse` accepts the value as an unrestricted string. 3. `get_skill_details()` creates a command using `f"clawhub inspect {slug}"`. 4. `_execute_clawhub_cmd()` passes the resulting string to `os.popen() ...[truncated 829 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/optimization_script.py:38
Finding

Plaintext ClawHub Access Token Embedded in Source Code

Content
View full analysis
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Error
Location
scripts/optimization_script.py:116
Finding

Out-of-Scope Automated Publication of Local Directory Contents

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/api_optimization.py:103
Finding

Hard-Coded Write to an External OpenClaw Workspace

Content
View full analysis
Remediation
View remediation

T06 · System Persistence

Warning
Location
STATE.md:1
Finding

Documented Cross-Session Scheduled Optimization and Publication Workflow

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/delayed_publish.py:23
Finding

Unbounded Recursive Publication Retries on Rate Limiting

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (50)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill claims to help users find skills, but the detected behavior modifies local configuration, changes version/API settings, and publishes/releases through subprocess calls. That makes it functionally a maintenance or deployment script, and such hidden administrative behavior is dangerous because it can alter environments or trigger releases under the guise of a harmless utility.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill claims to help users find skills, but the detected behavior modifies local configuration, changes version/API settings, and publishes/releases through subprocess calls. That makes it functionally a maintenance or deployment script, and such hidden administrative behavior is dangerous because it can alter environments or trigger releases under the guise of a harmless utility.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill claims to help users find skills, but the detected behavior modifies local configuration, changes version/API settings, and publishes/releases through subprocess calls. That makes it functionally a maintenance or deployment script, and such hidden administrative behavior is dangerous because it can alter environments or trigger releases under the guise of a harmless utility.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill claims to help users find skills, but the detected behavior modifies local configuration, changes version/API settings, and publishes/releases through subprocess calls. That makes it functionally a maintenance or deployment script, and such hidden administrative behavior is dangerous because it can alter environments or trigger releases under the guise of a harmless utility.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill claims to help users find skills, but the detected behavior modifies local configuration, changes version/API settings, and publishes/releases through subprocess calls. That makes it functionally a maintenance or deployment script, and such hidden administrative behavior is dangerous because it can alter environments or trigger releases under the guise of a harmless utility.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The STATE.md describes a scheduled workflow to optimize the skill's description and keywords every night at 2:00am in order to maintain platform ranking, which goes beyond the declared purpose of helping users browse and search skills. This indicates undeclared growth/manipulation behavior and creates risk of unauthorized automated content changes, ranking abuse, and policy evasion if the automation is activated.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

A search/navigation utility should not need broad shell execution capability, yet _execute_clawhub_cmd accepts arbitrary command strings and runs them through the shell. In this context, that mismatch makes the feature more dangerous because even read-oriented operations can become arbitrary local command execution if inputs or future code paths are influenced.

Content

No source excerpt is available for this finding.

os.system() or os exec-family call

High
Category
Dangerous Code Execution
Confidence
98% confidence
Finding

The code executes shell commands through os.popen(cmd) and later builds those commands from variable input. This creates a command-injection path because shell metacharacters in inputs such as slug can alter the intended command and execute arbitrary local commands under the user's privileges.

Content

Scanner excerpt · scripts/clawhub_skill_explorer.py (reported line 62)May include surrounding context.

python
def _execute_clawhub_cmd(self, cmd: str) -> str:
        """Execute ClawHub CLI command"""
        try:
            result = os.popen(cmd).read().strip()
            return result
        except Exception as e:
            print(f"❌ Error executing command: {e}")

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
100% confidence
Finding

A live token appears hardcoded directly in source code while the comment misleadingly frames it as secure configuration. Hardcoded secrets are highly dangerous because anyone with source access can reuse the credential to inspect, modify, or publish remote resources, leading to account compromise and unauthorized changes.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The script's behavior materially exceeds the declared function of a skill exploration/navigation tool by automating remote publishing and metadata changes. This mismatch is dangerous because it hides administrative write actions inside a seemingly benign utility, increasing the chance of unauthorized or unexpected account-level modifications.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The code contains unjustified authority to republish a skill and alter its metadata, despite the product being described as a search/navigation tool. If executed with valid credentials, it can change remote artifacts and potentially be abused to push misleading metadata or unwanted updates without user awareness.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Lines L2-L4 are written in Chinese mixed with English, indicating a language-specific constraint in the skill’s operational notes. There is no indication that this locale choice is optional, user-selected, or justified as region-specific, which conflicts with the language/locale policy criteria.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
75% confidence
Finding

Docker image references without a specific tag (:latest is implicit) or digest (@sha256:...) can be silently replaced by a malicious image.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The runbook is materially inconsistent with the skill's declared purpose of helping users explore and navigate skills. Instead, it instructs the agent to inspect, optimize, publish, and monitor metadata for ranking, which expands the skill into a publisher/SEO manipulation workflow and can cause unauthorized or unexpected modification of platform content.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The file’s natural-language instructions and labels are entirely in Chinese, and there is no indication that use of this language is optional or that the skill is intended only for a Chinese-speaking or region-specific context. This can violate language/locale policy when users are not given an explicit choice or opt-in.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

Including a publish/update step gives a search-and-navigation skill a write capability that is unjustified by its stated function. If invoked by mistake or abused, it could alter skill metadata, overwrite legitimate content, or be used to push deceptive updates under the guise of a benign explorer tool.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding

The skill metadata does not declare any tool restrictions, yet the detected capabilities include file read/write, network access, and shell execution. In an agent-skill context, missing explicit scope boundaries can allow a nominally simple discovery tool to perform privileged actions far beyond user expectations, increasing the risk of misuse or prompt/command injection impact.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This markdown file presents the skill name, description, usage, and guidance solely in Chinese, and does not indicate that the skill is region-specific or that users can choose another language. That can violate language/locale policy when a skill forces a specific language without user opt-in.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

A browsing/search skill has no legitimate need to perform recurring ranking optimization, keyword analysis, and periodic updates aimed at improving platform position. The mismatch between stated purpose and implemented operational workflow increases the likelihood of deceptive functionality, and the presence of rate-limit issues suggests active automation against platform APIs that could scale abusive behavior.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

This Python file contains user-facing descriptions and console output in Chinese, indicating the skill experience is fixed to a specific language. The policy requires flagging language or locale constraints when the skill does not offer a user choice or clearly justify the restriction.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

This Python file contains natural-language descriptions entirely in Chinese, beginning with the module docstring, and all user-facing print messages are also Chinese. The file does not offer a language choice or explain that the skill is intentionally limited to a Chinese-speaking or region-specific context, which violates the language/locale policy criterion.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This script writes to a hard-coded local configuration file even though the skill is described as a search/navigation tool. That creates a capability mismatch: a user or reviewer may expect read-only browsing behavior, but the script can persistently alter local state, which increases the risk of unauthorized configuration changes or abuse if the script is invoked in an unexpected context.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The local file-write capability is not justified by the stated purpose of a skill explorer, so it expands privileges beyond what is operationally necessary. Even though this code appears intended to tune API settings, unnecessary write access can be repurposed to tamper with skill behavior, persist unwanted settings, or mislead operators about what the tool is doing.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

get_skill_details interpolates untrusted slug input into clawhub inspect {slug} and passes it to os.popen, allowing shell metacharacters to break out of the intended command. Because the tool is meant for exploring public skills, users may reasonably pass attacker-controlled slugs or copied identifiers, making this context especially risky.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill is ներկայացված as an explorer/navigation utility, but it also performs account-affecting star operations on the external platform. Hidden or unnecessary state-changing behavior increases security risk because users may invoke a tool expecting read-only behavior while it modifies their account state.

Content

No source excerpt is available for this finding.