Back to skill

Security audit

SkillHub Manager

Security checks for vulnerabilities and agentic risk

Overview

The skill is coherent for managing SkillHub/ClawHub workflows, but it tells agents to run unpinned CLI commands while handling tokens, publishing files, and accepting custom registry URLs.

Install only if you are comfortable with a skill that can guide authenticated registry publishing. Use a vetted or pinned `clawhub` CLI version, avoid passing long-lived tokens on the command line when possible, verify any custom registry URL before sending credentials or source, and run publishing from a least-privileged environment.

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

Warning
Location
SKILL.md:46
Finding

Unpinned Package Execution Through npx

Content
View full analysis
` - custom registry plus token: `CLAWHUB_REGISTRY=https://your-registry.example npx clawhub login --token ` - if the environment already provides `SKILLHUB_API_TOKEN`, `CLAWHUB_API_TOKEN`, or `CLAWHUB_TOKEN`, validate first with `npx clawhub whoami` - if no working token is available, ask the user for one before proceeding ``` Related workflow commands include: ```bash npx clawhub whoami npx clawhub login --token npx clawhub publish ./my-skill --slug my-skill --name "My Awesome Skill" --version 1.0.0 npx clawhub inspect my-skill ``` ### Technical Analysis The documented workflows invoke `clawhub` through `npx` without an exact package version or integrity check. If the package is absent locally, `npx` may retrieve it from the configured npm registry and execute it immediately. Consequently, the code executed during a future skill invocation can differ from the package reviewed when this audit was performed. This creates a supply-chain trust boundary involving the package publisher, npm registry, local npm configuration, and network path. A compromised release, malicious registry override, package-name takeover, or unexpectedly incompatible update could execute arbitrary JavaScript under the account running the agent. The exposure is especially significant for the login and publishing workflows because the invoked process may have access to registry tokens, local skill source files, the working directory, and other environment variables. ### Attack Path 1. An attacker compromises the `clawhub` package distribution channel, publishes a malicious update, or causes th ...[truncated 1176 chars]
Remediation
View remediation
whoami ``` 2. Prefer installing the dependency from a lockfile with integrity metadata and invoking the locked local binary: ```bash npm ci ./node_modules/.bin/clawhub whoami ``` 3. Document the authoritative package name, publisher, expected registry, version, and package integrity hash. 4. Prevent npm registry configuration from silently redirecting package resolution to an untrusted source. 5. Run the CLI in a least-privileged environment with access only to required files and credentials. 6. Review and update the pinned version through a controlled dependency-update process rather than resolving the latest release during execution. 7. Avoid exposing unrelated environment variables to the CLI process. ]]>

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:38
Finding

Unsafe Shell Interpolation of a User-Provided Registry Address

Content
View full analysis
` - if it is a custom or self-hosted registry, set `CLAWHUB_REGISTRY=` for every command Examples: - default registry: `npx clawhub ` - custom registry: `CLAWHUB_REGISTRY=https://your-registry.example npx clawhub ` ``` The publishing workflow further demonstrates direct shell construction: ```bash CLAWHUB_REGISTRY=https://your-registry.example npx clawhub publish ./my-skill --slug my-skill --name "My Awesome Skill" --version 1.0.0 ``` ### Technical Analysis The skill instructs the agent to place a user-provided registry URL directly into a shell environment assignment. It does not require URL parsing, scheme restrictions, shell-metacharacter rejection, or structured process invocation. If an implementation constructs a raw shell command by replacing `` with untrusted text, shell control characters can alter command parsing. Quoting alone would be insufficient if implemented inconsistently; the safer approach is to avoid shell-string construction entirely and supply `CLAWHUB_REGISTRY` through a process API's environment map. A second trust issue exists even when the value is syntactically safe. The workflow permits login and publishing against any user-selected custom registry without requiring validation of HTTPS, certificate trust, embedded credentials, or operator ownership. A malicious registry could receive tokens submitted during login and source content uploaded during publishing. ### Attack Path #### Shell-injection path 1. An attacker supplies a purported registry address containing shell syntax, ...[truncated 1846 chars]
Remediation
View remediation
", "inspect", skillSlug] environment: {"CLAWHUB_REGISTRY": validatedUrl} shell: false ``` 4. If only approved organizational registries are expected, enforce an allowlist of exact hostnames and ports. 5. Display the normalized URL and require explicit confirmation that the user trusts the endpoint before transmitting credentials or source code. 6. Reject URLs that redirect authentication or publication requests to an unapproved origin. 7. Use scoped, short-lived tokens restricted to the selected registry and minimum required operations. 8. Prefer protected environment variables or standard input over command-line token arguments, which may be exposed through shell history or process listings. 9. Add an explicit warning that publishing transmits local package contents to the selected registry. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (23)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The document presents the skill content under fixed language headings 'English' and '中文' without indicating that the user may choose a preferred language. This can be read as a language/locale constraint baked into the skill description, which falls under the policy concern for forcing a specific language without user opt-in.

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 clawhub without pinning an exact package version, which allows retrieval and execution of whatever version is current in the registry at runtime. If the package is compromised, typo-squatted, or a malicious update is published, users of the skill could execute attacker-controlled code during search, inspect, login, or publish workflows, including in contexts where tokens are present.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding

The same line repeats the unsafe pattern of using npx clawhub without version pinning. Because npx may fetch and execute code on demand, a compromised upstream package could hijack the intended registry workflow and access tokens, package contents, or system state.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

The confirmation example tells the agent to run npx clawhub ... with only an environment variable change, but still leaves the package version unbounded. That means the workflow intended to improve safety around registry selection still permits arbitrary upstream code changes to be executed at runtime.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

This command template explicitly instructs use of unpinned npx clawhub <command>, which can fetch the latest package and execute it immediately. Since this skill governs authentication and publishing workflows, compromise of that package could lead to credential theft or malicious uploads.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

The custom-registry template still relies on unpinned npx clawhub, so changing the target registry does not mitigate supply-chain risk from the CLI itself. A malicious or compromised package could exfiltrate the provided registry URL, tokens, or local skill contents.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The login example combines unpinned npx execution with direct token handling via --token <TOKEN>. This is particularly dangerous because any compromise of the fetched CLI could immediately capture authentication tokens and use them to access or modify registry content.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This custom-registry login example uses unpinned npx clawhub while also supplying a token, increasing the blast radius of a supply-chain compromise. An attacker controlling the resolved package version could steal credentials and target self-hosted registries that may contain private organizational assets.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding

The npx clawhub whoami validation step is also unpinned, so even a seemingly harmless identity check may execute attacker-controlled code if the package source is compromised. While the direct impact is somewhat lower than explicit login or publish operations, the command may still run in a credentialed environment and expose secrets.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding

The publishing workflow reference indicates npx clawhub publish without a pinned version, which is high risk because publishing commands often read local package contents and use authenticated credentials. A malicious package update could tamper with published artifacts or exfiltrate proprietary code and tokens.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding

The inspect workflow uses unpinned npx clawhub inspect, exposing users to the same supply-chain execution risk even during read-oriented operations. Although inspection is less sensitive than publish or login, the command may still run on trusted systems and process private registry metadata.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding

The search workflow similarly relies on unpinned npx clawhub search, allowing runtime execution of whatever package version is currently resolved. While search is lower sensitivity than login, the pattern still creates avoidable supply-chain exposure across all users of the skill.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

Using npx clawhub without a pinned package version allows the latest package to be resolved and executed at runtime. If the upstream package is compromised, typo-squatted, or a breaking release is published, the agent may run unreviewed code and potentially expose tokens or perform unintended registry operations.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

This workflow instructs the agent to execute npx clawhub whoami without version pinning, which means arbitrary newly published package code could be fetched and run. Because this check is performed before authentication-sensitive actions, a compromised package could harvest environment data or manipulate subsequent workflow behavior.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The unpinned npx clawhub login --token <TOKEN> is especially dangerous because it runs network-fetched package code in a context where a sensitive API token is supplied on the command line. A compromised or malicious package version could directly exfiltrate the token and give attackers registry access.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The publish command uses unpinned npx, so the package actually executed may differ over time and may not be the one originally reviewed. In a publishing workflow, that can lead to unauthorized uploads, metadata tampering, or execution of attacker-controlled code on the operator system.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This concrete publish example also executes the latest resolved clawhub package rather than a fixed version. Since publishing often involves authenticated registry access and local file reads, a compromised package could alter artifacts, steal credentials, or leak local content.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The custom-registry publish example still relies on an unpinned npx package fetch. Combining remote code execution risk with a user-supplied registry target increases exposure, because the tool may handle authentication, upload content, and trust remote endpoints in a single step.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The post-publish verification step uses an unpinned inspect invocation, which can still execute unexpected package code even though it appears read-only. That creates a supply-chain risk and undermines the reproducibility and trustworthiness of the verification process itself.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The inspect workflow fetches and runs the latest clawhub package on demand, exposing users to supply-chain compromise even for metadata lookup actions. While lower impact than login or publish, it still permits execution of unreviewed code in the operator environment.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The explore example uses unpinned npx, so a simple browsing action may execute newly published code outside the user's review process. This broadens the attack surface because low-sensitivity actions can still become an entry point for compromise.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The search command is also unpinned, creating the same package substitution and latest-version execution risk. Even though search is less privileged than login or publish, the tool still runs arbitrary fetched code locally and could collect data or stage further compromise.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

This guidance encourages npx clawhub whoami as a routine pre-publish check without pinning the package version, normalizing unsafe execution of mutable external code. Because it is part of a release workflow tied to registry authentication, compromise here can affect both local systems and published supply-chain artifacts.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.