Back to skill

Security audit

clawhub-deployer — Skill Publishing Assistant

Security checks for vulnerabilities and agentic risk

Overview

This skill is purpose-built for publishing to ClawHub, but it asks an agent to run unpinned network-fetched CLI commands and publish content without enough safeguards.

Review carefully before installing. Use a pinned, trusted ClawHub CLI version or a preinstalled verified binary, confirm the exact files to be staged, and require explicit approval before login or publication. Avoid using this skill on untrusted target paths or metadata values.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (2)

T08 · Insecure Dependencies

Error
Location
SKILL.md:59
Finding

Execution of an Unpinned Mutable npm Package

Content
View full analysis
&1 || npx clawhub@latest login ``` ```bash npx clawhub@latest publish TARGET_DIR/clawhub-publish/ \ --slug SLUG \ --name "DISPLAY_NAME" \ --version VERSION \ --changelog "CHANGELOG" \ --tags latest ``` ```bash npx clawhub@latest inspect SLUG ``` ### Technical Analysis The workflow repeatedly invokes `npx clawhub@latest`. The `latest` npm distribution tag is mutable, so the package code executed during a future invocation may differ from the version that was reviewed during this audit. When the requested version is not already available locally, `npx` can retrieve and execute the package from the configured npm registry. The workflow provides neither an exact package version nor an integrity or provenance check. Consequently, compromise of the package, maintainer account, release process, npm distribution tag, or configured package registry could cause arbitrary third-party code to execute with the privileges of the user running the skill. The login and publishing operations are particularly sensitive because the invoked process may have access to ClawHub authentication state, environment variables, local files, and network connectivity. ### Attack Path 1. An attacker compromises the `clawhub` npm package, a maintainer account, its release process, or the package source configured on the victim system. 2. The attacker publishes a malicious release and causes the mutable `latest` tag to resolve to it. 3. A user asks the agent to publish or verify a skill. 4. The agent executes one of the documented `npx clawhub@latest` commands. 5. `npx` downloads and runs the attacker-controlled package code. 6. The malicious package executes with the user's privileges and can attempt to read credential ...[truncated 840 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:22
Finding

Shell and Option Injection Through Unquoted Workflow Parameters

Content
View full analysis
/dev/null || true ``` ```bash npx clawhub@latest publish TARGET_DIR/clawhub-publish/ \ --slug SLUG \ --name "DISPLAY_NAME" \ --version VERSION \ --changelog "CHANGELOG" \ --tags latest ``` ### Technical Analysis The skill instructs an AI agent with Bash access to replace placeholders such as `TARGET_DIR`, `SLUG`, and `VERSION` directly inside shell commands. Most substitutions are not quoted, and the workflow does not require shell-safe argument construction, canonical path validation, or an end-of-options marker. If an agent substitutes an attacker-influenced value verbatim, shell metacharacters such as command separators, command substitutions, redirections, or expansions may be interpreted by the shell. Even where shell metacharacters are not used, values beginning with `-` may be interpreted as options by utilities or the publishing client. `DISPLAY_NAME` and `CHANGELOG` are shown inside double quotes, which protects spaces but does not make arbitrary text safe if the agent constructs and evaluates a command string. Shell substitutions can still be active inside double-quoted shell text. The risk depends on the agent following these templates through textual interpolation rather than using a structured argument interface. The staging commands also use unquoted glob patterns derived from `TARGET_DIR`. Paths containing spaces or wildcard characters can be split or expanded unexpectedly, potentially causing unintended files to be copied into the publication directory. ### Attack Pat ...[truncated 1476 chars]
Remediation
View remediation
Vulnerability Patterns
  • 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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (9)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Check that the target folder contains a valid `SKILL.md`:

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The README describes login and publish steps to an external registry but does not warn users that the workflow performs network access, may transmit skill contents, and can create or modify public registry state. That omission can lead users or downstream agents to trigger sensitive external actions without informed consent, increasing the risk of accidental data exposure or unintended publication.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The README instructs users to run npx clawhub@latest, which fetches and executes the latest package version from the network at runtime. Because the version is not pinned, a compromised upstream release or dependency-chain attack could cause arbitrary code execution on the user's machine during publish/login workflows.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This installation example again uses npx clawhub@latest, causing execution of whatever code is currently published under that package name. In a skill whose purpose is publishing to an external registry, this is especially risky because users are primed to authenticate and handle sensitive project contents, magnifying the effect of a malicious package update.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The description says to use the skill when the user asks to "publish, release, or deploy" a skill to ClawHub, which uses broad action verbs that can overlap with unrelated deployment or release requests. In an agentic environment, ambiguous routing can cause this skill to trigger outside its intended scope and run filesystem and package-execution steps unexpectedly.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The trigger example publish skill is highly ambiguous and may match ordinary conversation that is not about ClawHub. Because this skill includes shell commands, file copying, login, and remote publishing behavior, an overbroad invocation phrase increases the chance of unintended execution in the wrong context.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
80% confidence
Finding

This appears to be a duplicate report for the same unpinned npx clawhub@latest invocation on line 62. The underlying issue is still real: using @latest in a command that the agent may run allows unreviewed upstream code to execute in the user's environment.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The publish step uses npx clawhub@latest publish, again executing whatever version is current at the time of use. Because this step handles packaging and outbound publication, a malicious or compromised release could alter published contents, exfiltrate credentials, or run arbitrary code on the host.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The verification step also uses npx clawhub@latest inspect, which preserves the same supply-chain risk even if the action is read-oriented. Any runtime execution of an unpinned package can lead to arbitrary command execution or inconsistent behavior across runs.

Content

No source excerpt is available for this finding.