Back to skill

Security audit

Clawhub Skill

Security checks for vulnerabilities and agentic risk

Overview

The skill is coherent and disclosed, but it asks users to run mutable remote npm code that can change after review.

Install only if you trust the npm package publisher and are comfortable executing code that was not included in this reviewed skill. Prefer pinning a specific reviewed version, running it in a constrained directory or sandbox, and inspecting generated agent rules, MCP server files, and site files before opening the vault in an AI agent or running `npm install`/`npm start`.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Error
Location
SKILL.md:23
Finding
Unpinned External npm Package Is Downloaded and Executed## Vulnerability Details **File Location**: `SKILL.md:23-26, 51`; `EXAMPLES.md:3-7, 10-14, 16-19, 21-25, 45-49, 56-60` **Vulnerability Type**: Unpinned third-party dependency execution **Risk Level**: High ### Vulnerable Code `SKILL.md:23-26`: ```bash npx -y create-opc-wiki@latest <path> --yes --agents=openclaw,claude,codex,cursor ``` `SKILL.md:51`: ```text Run `npm install && npm start` from the `mcp/` directory. ``` `EXAMPLES.md:3-7`: ```bash npx -y create-opc-wiki@latest ~/wiki --yes \ --agents=openclaw,claude,codex,cursor,hermes,vscode ``` `EXAMPLES.md:10-14`: ```bash npx -y create-opc-wiki@latest /tmp/quick-wiki --yes \ --agents=claude --no-mcp --no-site --no-recipes --no-git ``` `EXAMPLES.md:16-19`: ```bash npx -y create-opc-wiki@latest ~/research --yes \ --domains=ai,bio,papers,methodology --agents=claude ``` `EXAMPLES.md:21-25`: ```bash npx -y create-opc-wiki@latest /tmp/wiki --yes --json --no-git \ | jq '{ok, files, dirs, target}' ``` `EXAMPLES.md:45-49`: ```bash cd ~/wiki/mcp npm install npm start ``` `EXAMPLES.md:56-60`: ```bash cd ~/wiki/site npm install npm run build ``` ### Technical Analysis The documented `npx -y create-opc-wiki@latest` command downloads and immediately executes the package version currently associated with the mutable `latest` npm distribution tag. Neither an exact version nor an integrity digest is specified. The `-y` option also suppresses the normal installation confirmation, reducing the opportunity for users or agents to inspect what will run. Consequently, the code executed by this skill can change after the reviewed Markdown files have been published. The external implementation is not included in the audited artifact, so its behavior and the documentation's claims concerning telemetry, privacy gates, generated rules, and local-only processing cannot be verified here. The generated pro ...[truncated 2013 chars]
Remediation
## Remediation Suggestions 1. Replace `@latest` with an exact, reviewed package version, for example `create-opc-wiki@X.Y.Z`. 2. Verify the downloaded package using an approved integrity digest or trusted internal artifact registry. Record the expected package provenance and checksum in the installation documentation. 3. Remove `-y` from recommended interactive commands so users receive an installation prompt and can review the selected package and version. 4. Vendor the required implementation into the audited project, or provide reproducible build instructions and signed release artifacts so behavior can be reviewed without trusting a mutable remote tag. 5. Commit lockfiles for the generated MCP and site projects. Use `npm ci` rather than unconstrained `npm install` to reproduce the audited dependency graph. 6. Pin direct and transitive dependencies, enable npm provenance verification where available, and continuously scan lockfiles for compromised or vulnerable packages. 7. Disable package lifecycle scripts during dependency installation where they are unnecessary, such as with `npm ci --ignore-scripts`, and explicitly run only reviewed build steps afterward. 8. Execute the scaffolder in a restricted container or sandbox with minimal filesystem access, no unnecessary credentials, and no elevated privileges. 9. Require users to inspect generated agent rules, skills, MCP server code, and site scripts before opening the vault in an AI agent or starting generated services.
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (10)

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding
The example instructs users to execute an npm package via `npx ...@latest`, which fetches and runs the newest published code without version pinning. If the package is compromised, a malicious version is published, or a dependency/supply-chain attack occurs, users will execute unreviewed code directly on their systems.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding
This command again uses `npx` with `@latest`, causing users to download and execute the most recent package release at runtime. That creates a supply-chain risk because any compromise of the package publisher, registry account, or dependency tree could turn the install example into arbitrary code execution.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding
The documentation recommends running an unpinned package version directly from the npm registry. In the context of an agent skill intended for broad copy-paste installation, this increases exposure because users are likely to execute the command without inspecting the package contents first.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding
The CI/programmatic example pipes output from `npx ...@latest`, normalizing automated execution of the newest package version. In automation contexts, unpinned execution is especially risky because it can silently introduce malicious or breaking behavior into CI runners or build environments.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
The skill instructs users to execute a remotely fetched npm package using `npx` with the `latest` tag, which is an unpinned and mutable dependency. If the package is compromised, typosquatted, or a malicious update is published, the command will immediately run attacker-controlled code on the user's machine.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
This example command uses `npx -y create-opc-wiki@latest`, which causes immediate execution of whatever code is currently published under that npm package name. Because the version is not pinned, the trust boundary extends to all future package updates, making supply-chain compromise directly exploitable.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
The skill's Claude Code example encourages execution of a mutable npm package version via `npx`, creating a classic supply-chain risk. A malicious or compromised upstream release would run with the user's local permissions and could alter files, steal secrets, or install persistence.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
The Codex CLI example repeats the unsafe pattern of executing `create-opc-wiki@latest` directly from npm. In an agent skill context, users may run commands with reduced scrutiny, which increases the likelihood that a compromised package would be executed without review.

Rp1

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding
This Cursor example again instructs direct execution of an unpinned npm package, exposing users to arbitrary code execution via future package changes. The danger is amplified because the skill is specifically designed for cross-agent copy/paste installation, encouraging broad and repeated execution of the command.

Rp1

Medium
Category
MCP Rug Pull
Confidence
99% confidence
Finding
The 'All of them' one-liner promotes the same unpinned `@latest` execution pattern across multiple agent ecosystems, increasing blast radius if the package is ever compromised. Because the command is intended to be copied verbatim, exploitation would be straightforward and scalable in a supply-chain attack.

Static analysis

No suspicious patterns detected.