Back to skill

Security audit

skill-publisher

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent publishing helper, but it asks an agent to perform public account-changing actions and to patch local executable CLI code in ways users should review carefully before installing.

Review this skill before installing if you are not comfortable with an agent creating public GitHub repositories, pushing local files, publishing to ClawdHub, opening public issues, running unpinned npx CLIs, or modifying npm cache files. Use it only with a clean skill directory, minimal credentials, explicit confirmations before every publish/write step, and avoid the CLI patch workaround unless you personally inspect and approve the exact change.

Vulnerability Patterns
  • Tool Hijacking and SpoofingModifies or replaces tools so legitimate-looking calls execute attacker logic
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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:199
Finding

Unpinned Third-Party Packages Are Retrieved and Executed Through npx

Content
View full analysis
&1 || npx clawhub login ``` ```bash npx clawhub inspect 2>&1 ``` ```bash npx clawhub publish "$SKILL_DIR" \ --slug \ --name "" \ --version \ --changelog "" ``` Additional unpinned execution and installation instructions occur at `SKILL.md:35`, `SKILL.md:150`, `SKILL.md:241`, and `SKILL.md:283-297`. ### Technical Analysis The workflow repeatedly invokes `clawhub` and `skills` through `npx` without specifying exact package versions or validating package integrity. When a suitable package is not already available locally, `npx` can retrieve package code from the configured npm registry and execute it immediately. Consequently, the code ultimately executed can change after this skill has been reviewed. The workflow does not provide a lockfile, integrity hash, reviewed package archive, trusted registry constraint, or package-signature verification. Some commands also perform global skill installation, increasing the amount of externally supplied content placed in user-controlled directories. This does not establish that the referenced packages are currently malicious. The vulnerability is the unsafe trust model: mutable, unpinned third-party code is executed as part of the documented workflow. ### Attack Path 1. An attacker compromises a referenced npm package, its publisher account, a transitive dependency, or the package source configured in the user's npm environment. 2. The compromised source publishes or supplies a modified version under the expected package name. 3. A user or agent follows the skill and runs an unpinned command such as `npx clawhub publish ...` or `npx skills add ...`. 4. `npx` resolves and retrieves the currently available package rather than a previousl ...[truncated 965 chars]
Remediation
View remediation
... ``` 2. Record dependencies in a project manifest and lockfile rather than resolving mutable versions during each invocation. 3. Verify downloaded package integrity against an independently maintained checksum or trusted package signature. 4. Use a controlled npm registry and explicitly verify the resolved package source before execution. 5. Require informed user confirmation before downloading a package for the first time. 6. Run publishing and installation verification in an isolated container or disposable environment with minimal credentials and filesystem access. 7. Avoid global installation during verification. Install into a temporary, isolated prefix and delete the entire isolated environment afterward. 8. Document and review transitive dependencies whenever the pinned package version changes. ]]>

T07 · Tool Hijacking and Spoofing

Warning
Location
SKILL.md:220
Finding

Workflow Instructs Modification of Executable Code in the npm Cache

Content
View full analysis
/dev/null | head -1)" # Add acceptLicenseTerms to the payload # In the JSON.stringify block, add: acceptLicenseTerms: true, ``` ``` ### Technical Analysis The skill instructs the agent to locate and modify executable JavaScript inside the npm `_npx` cache. This breaks the integrity boundary between installed tooling and local modifications. Future invocations may execute the altered file while appearing to use the original `clawhub` tool. The selection mechanism is also ambiguous: ```bash find ... | head -1 ``` If multiple cached versions or matching paths exist, the first filesystem result is selected without checking its package version, ownership, checksum, or relationship to the current invocation. The workflow supplies no exact patch command, backup procedure, validation step, rollback process, or integrity check. In addition, inserting `acceptLicenseTerms: true` programmatically changes a legal-consent field. Applying that change without explicit, informed user approval could represent consent that the user did not personally review or authorize. ### Attack Path 1. Multiple matching `publish.js` files exist in `~/.npm/_npx`, or an attacker with existing user-level write access places a crafted matching path in that directory. 2. The `find ... | head -1` expression selects an unintended or attacker-influenced file. 3. The agent follows the inst ...[truncated 1266 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Rogue AgentSelf-Modification, Session Persistence
Findings (32)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Read `SKILL.md` and verify YAML frontmatter contains:

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Read `SKILL.md` and verify YAML frontmatter contains:

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

Although bounded to /tmp/test-skill-install, the workflow includes a forceful recursive deletion command without guardrails or prior verification that the path is the intended temporary directory. In automation contexts, variable substitution mistakes or path reuse can turn cleanup commands into destructive operations, so even fixed-path rm -rf deserves safeguards.

Content

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

Verify

ls /tmp/test-skill-install/

Cleanup

rm -rf /tmp/test-skill-install

text

### 5.4 Report

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

Although bounded to /tmp/test-skill-install, the workflow includes a forceful recursive deletion command without guardrails or prior verification that the path is the intended temporary directory. In automation contexts, variable substitution mistakes or path reuse can turn cleanup commands into destructive operations, so even fixed-path rm -rf deserves safeguards.

Content

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

Verify

ls /tmp/test-skill-install/

Cleanup

rm -rf /tmp/test-skill-install

text

### 5.4 Report

Session Persistence

Medium
Category
Rogue Agent
Confidence
84% confidence
Finding

The documented workflow chains multiple stateful external actions in one session: repository creation, login-dependent publishing, issue submission, and installation verification. In an agent context, this increases the risk of unintended persistent side effects if the skill is triggered incorrectly or runs with excessive authority, because it can create public artifacts and modify external accounts/services.

Content

Scanner excerpt · README.md (reported line 30)May include surrounding context.

text
1. Pre-flight Check    → Validate SKILL.md, README, LICENSE, secrets scan
2. GitHub Publish      → Create repo, push, add discovery topics
3. ClawdHub Publish    → Login, check slug, publish (with bug workaround)
4. skills.sh Submit    → Auto-create index request issue
5. Install Verify      → Test all 3 install methods end-to-end

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The Usage section lists trigger phrases such as "publish my skill" and multilingual variants, but does not explain whether these are the only valid triggers, what context they must appear in, or any exclusion conditions. This ambiguity could cause unintended invocation because the phrases are natural requests a user might say in ordinary conversation.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The documentation describes creating repositories, pushing content, and automatically submitting issues, but it does not prominently warn users that the skill performs irreversible or externally visible actions. In a publishing workflow, lack of clear consent and risk disclosure can lead to unintended public disclosure of code or metadata and unexpected writes to third-party services.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
86% confidence
Finding

The README instructs users to run npx skills add ... without pinning a specific package version. That means execution will pull whatever version is current at install time, creating a supply-chain risk if a malicious or compromised release is published later. In a skill whose purpose is publishing and automation, users are especially likely to execute such commands directly, increasing exposure.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger phrases are broad, including generic requests like 'publish my skill' and similar multilingual variants, which may match ordinary conversation and invoke a workflow that performs external actions. Because this skill can create repositories, push content, and file issues, accidental activation is more dangerous than in a read-only skill.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
81% confidence
Finding

Referencing npx clawhub without a pinned version allows arbitrary future package updates to be executed in the user's environment. If the package or dependency chain is compromised, the user may run attacker-controlled code during publishing workflows that often have access to source code, Git credentials, and API tokens.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

The skill repeatedly invokes remote packages via npx clawhub without pinning an exact version. That allows whatever version is current at execution time to run arbitrary install-time and runtime code, creating a supply-chain risk in a workflow that performs publishing and local system changes.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

Using npx clawhub inspect without version pinning executes whichever package version npm resolves at that moment. In a publishing workflow, this introduces avoidable supply-chain exposure before repository and registry actions are taken.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The workflow creates a public GitHub repository and pushes local contents without an explicit warning that the repository will be public. Even with pre-flight checks, users may unintentionally expose proprietary code, internal documentation, or residual secrets if the risk is not called out clearly at the decision point.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

This is a second unpinned npx clawhub occurrence on the same line range and carries the same supply-chain risk: package behavior can change between runs without review. In a credentialed workflow, executing unreviewed package code is unsafe.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

The slug-availability check uses npx clawhub without pinning. Even seemingly read-only commands still fetch and execute remote package code, so they remain a viable supply-chain attack surface.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding

The publish command uses unpinned npx clawhub, which is especially risky because it runs during a sensitive operation that may upload local content and use authenticated registry access. A compromised upstream package could exfiltrate files or tokens or tamper with the publication process.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill tells the user to locate and manually patch code inside the locally cached ClawdHub CLI under ~/.npm/_npx. Directly editing third-party executable code in transient cache paths is unsafe, hard to audit, and can normalize tampering with local toolchains; it also creates an opportunity for hidden persistence or unexpected execution behavior.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

Verification with npx clawhub inspect is still an unpinned remote execution path. The repeated pattern across the workflow increases the overall attack surface and normalizes unsafe execution practices.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

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

4.1 Submit Index Request

bash
gh issue create --repo vercel-labs/skills \
  --title "Request to index skill: <owner>/<repo>" \
  --body "$(cat <<'ISSUE_EOF'
## Skill Information

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The workflow references npx skills without an exact version, so execution depends on mutable upstream package state. Because this command is presented as an install path for users, it propagates the supply-chain risk to downstream consumers as well.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The install verification step runs npx skills add without pinning the package version. This can execute unexpected code with filesystem write access during verification, making the workflow unnecessarily risky.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The verification phase performs package installs, global changes, uninstalls, cloning, and deletion, but does not prominently warn users that it will modify the local system. In a skill context, hidden side effects are dangerous because users may expect analysis or guidance rather than active environment changes.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.