Back to skill

Security audit

Skill Release Pipeline

Security checks for vulnerabilities and agentic risk

Overview

This skill does what it claims, but its publishing scripts can push and publish entire folders with broad automatic effects and unpinned CLI execution.

Install only if you are comfortable with a workflow that can commit, push, and publish a whole selected skill folder. Before use, review the folder for secrets, run from a clean repository, prefer a pinned or preinstalled ClawHub CLI, and consider adding a manifest preview or manual confirmation before network publishing.

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
scripts/publish.sh:104
Finding

Unpinned ClawHub CLI Allows Unreviewed Dependency Execution

Content
View full analysis
/dev/null; then echo "ERROR: Not logged in to ClawHub. Run: npx clawhub login" exit 1 fi npx clawhub publish "$FOLDER" \ --version "$VERSION" \ --slug "$SLUG" \ --tags "$TAGS" ``` The same unpinned invocation pattern is recommended throughout `SKILL.md`, including lines 13, 31, 69, 80, 85, 103, and 104. ### Technical Analysis The script invokes `npx clawhub` without an exact package version, lockfile, integrity hash, or verification of the executable being run. Depending on the npm environment and package-resolution behavior, `npx` may execute a project-local binary or download a package version that has not been reviewed with this skill. This creates a supply-chain trust boundary at runtime: the code ultimately executed is not fully represented by the audited project. If the resolved npm package, one of its transitive dependencies, or a locally resolved executable is compromised, arbitrary code can run under the publishing user's account. ### Attack Path 1. An attacker compromises a future version or transitive dependency of the npm package resolved as `clawhub`, or places a malicious locally resolvable package in the execution environment. 2. A user runs `scripts/publish.sh` in an environment where the malicious version is selected. 3. The script executes `npx clawhub whoami` and later `npx clawhub publish` without validating the selected package version or integrity. 4. Malicious installation or runtime code executes with the user's operating-system privileges. 5. That code can access files and environment variables available to the user and may misuse authenticated GitHub, npm, or ClawHub credentials available in the environment. ### Impact Assessment Successful exploitation provides arbitrary code ex ...[truncated 440 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/publish.sh:86
Finding

Unfiltered Recursive Staging and Publication Can Expose Sensitive Files

Content
View full analysis
/dev/null || true ``` ```bash npx clawhub publish "$FOLDER" \ --version "$VERSION" \ --slug "$SLUG" \ --tags "$TAGS" ``` From `scripts/push-github.sh`: ```bash # Stage and commit git add -A git commit -m "$COMMIT_MSG" --allow-empty ``` ### Technical Analysis Both publishing workflows accept a caller-selected folder and recursively stage all eligible content using `git add -A`. The full pipeline also passes the entire folder to `clawhub publish`. There is no manifest allowlist, secret scan, sensitive-file rejection, publication preview, or confirmation step. Although Git ignore rules may exclude some files from `git add`, the scripts do not verify that suitable ignore rules exist. They also do not establish whether ClawHub applies equivalent exclusions. The supplied `validate.sh` checks only basic `SKILL.md` structure, file size, licensing, and symlinks; it does not inspect files for credentials or private material. Consequently, files such as `.env` files, API tokens, private keys, cloud credentials, configuration backups, or internal documents can be unintentionally included in a Git commit or registry upload. ### Attack Path 1. A skill directory contains a sensitive file, whether created intentionally, copied accidentally, or generated by another tool. 2. The user runs `scripts/push-github.sh` or `scripts/publish.sh` against that directory. 3. `git add -A` stages all non-ignored files without displaying or validating the final manifest. 4. The script commits and pushes the staged data to the configured GitHub repository. 5. In the full pipeline, the directory is also supplied directly t ...[truncated 815 chars]
Remediation
View remediation
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 (16)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- A skill folder with a valid `SKILL.md`

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

This appears to be a duplicate of the same unpinned npx clawhub reference on the same line, but the underlying issue is still real. An unpinned npx invocation can execute whatever version is currently served, increasing supply-chain risk.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The command npx clawhub publish ... uses an unpinned package version in a workflow that handles publishing and likely authenticated state. If a malicious or compromised version is resolved, it could steal tokens, alter published artifacts, or run arbitrary code on the operator machine.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

npx clawhub login will fetch and run the latest package version unless pinned. Because this step is associated with authentication, a compromised package could capture credentials, tokens, or session details, making the risk more significant in context.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The unpinned npx clawhub publish command executes externally sourced code during a release workflow. In this context, compromise could affect both the local environment and the integrity of published skill artifacts or registry metadata.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

npx clawhub inspect is another floating execution path for the package. Even read-oriented commands are risky because npx still runs package code locally before performing the action.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

Publishing a new version via npx clawhub publish without version pinning exposes the release process to supply-chain compromise. Since this is a recurring operational instruction, it normalizes unsafe execution of floating external code.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The fork publication command again uses unpinned npx, allowing execution of whatever package version resolves at runtime. In a publishing/forking workflow, this could modify artifacts, exfiltrate repository or registry credentials, or tamper with metadata.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

npx clawhub inspect on this line still presents a supply-chain risk because the package version is not fixed. The fact that it is in troubleshooting/status guidance may make users run it reflexively, increasing exposure.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

npx clawhub search is also unpinned and therefore capable of executing an unreviewed package version. Although the action sounds low risk, the code execution happens before the logical operation, so arbitrary local effects remain possible.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

The troubleshooting advice to run npx clawhub login repeats the same unsafe pattern in an authentication context. This increases danger because users may execute the command specifically when handling account access, creating an opportunity for token theft if the package supply chain is compromised.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The script automatically commits, pushes to GitHub, and publishes to ClawHub with no interactive confirmation, dry-run, or explicit opt-in gate. This can cause unintended external side effects if run on the wrong folder, wrong repository, or with malicious/incorrect content, and the risk is amplified because publication actions are irreversible or publicly visible.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The script invokes npx clawhub without pinning an exact package version, so execution may fetch whatever version is current at runtime. If the upstream package is compromised, typosquatted, or changed incompatibly, the publisher workflow could execute attacker-controlled code with the user's local privileges and access to repository contents and credentials.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

Using unpinned npx clawhub means the command resolution is not deterministic and may download and run a newer or malicious package version at publish time. In a release script, this is especially risky because it runs during a trusted workflow and may have access to authenticated sessions and project files.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

The publish step executes npx clawhub publish without version pinning, creating a supply-chain risk where arbitrary code from a changed upstream package could run before publishing. Because this step performs authenticated network actions, compromise could lead to unauthorized publication, data exfiltration, or tampering with release artifacts.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

Even the displayed install command recommends npx clawhub@latest, which encourages downstream users to execute an unpinned remote package. While this line itself is output rather than execution by the script, it propagates an unsafe operational pattern that increases supply-chain exposure for users of the skill.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.