Back to skill

Security audit

Openclaw Tools

Security checks for vulnerabilities and agentic risk

Overview

This skill is a simple guide for discovering OpenClaw skills, with a disclosed supply-chain caution around unpinned npx examples but no hidden or persistent behavior.

Before running the examples, consider using a verified local ClawHub install or pinning `clawhub` to a reviewed version. Read any discovered skill's documentation and test new skills in isolation before using them in sensitive workspaces.

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

Warning
Location
SKILL.md:29
Finding
Unpinned npm Package Execution via npx## Vulnerability Details **File Location**: `SKILL.md`, lines 29–34 and 54–75 **Vulnerability Type**: Unpinned third-party package execution **Risk Level**: Medium ### Vulnerable Code ```bash # Search skills npx clawhub search "keyword" # Browse categories npx clawhub browse ``` Additional affected commands include: ```bash npx clawhub search "web search" npx clawhub search "weather" npx clawhub search "document" npx clawhub search "tavily" npx clawhub search "github" npx clawhub search "calendar" npx clawhub search --sort installs npx clawhub search --sort stars ``` ### Technical Analysis The skill repeatedly instructs users or agents to run `npx clawhub` without specifying an exact package version, integrity hash, lockfile, or verified local installation. If the package is not already available locally, `npx` can resolve, download, and execute the package from the configured npm registry. Because package resolution is not pinned to an audited artifact, the code executed at invocation time may differ from the code that existed when the skill was reviewed. A compromised maintainer account, malicious package release, registry compromise, or dependency-chain compromise could therefore turn a routine skill search into arbitrary local code execution. Package lifecycle scripts or the CLI entry point may execute with the operating-system privileges and environment of the invoking agent or user. ### Attack Path 1. An attacker compromises the `clawhub` npm package, one of its transitive dependencies, or its publication channel. 2. The attacker publishes a malicious release that contains harmful lifecycle or CLI code. 3. A user asks the agent to find or browse available skills. 4. Following `SKILL.md`, the agent executes an unversioned command such as `npx clawhub search "keyword"`. 5. `npx` resolves and downloads the attacker-controlled release from the configured registry. 6. The malicious package executes with the invoking process's permissions before or wh ...[truncated 630 chars]
Remediation
## Remediation Suggestions 1. Pin `clawhub` to an exact reviewed version rather than allowing unconstrained resolution: ```bash npx --package=clawhub@EXACT_VERSION clawhub search "keyword" ``` 2. Install dependencies through a committed lockfile and use deterministic installation commands, such as `npm ci`, where the surrounding project supports them. 3. Verify package provenance, publisher identity, signatures or attestations, and registry integrity before approving a version. 4. Record and validate package integrity hashes so that unexpected artifact changes cause installation to fail. 5. Prefer a preinstalled, locally verified executable over downloading executable code during each skill invocation. 6. Disable dependency lifecycle scripts where operationally practical, and review the package and its transitive dependencies before upgrades. 7. Run the command in a restricted environment with minimal filesystem access, no unnecessary credentials, and limited network permissions. 8. Establish an explicit update-review process instead of automatically consuming newly published releases.
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
94% confidence
Finding
The skill instructs users to run `npx clawhub search "keyword"` without pinning a specific package version. `npx` may fetch and execute the latest published package, so a compromised upstream release, typosquat, or unexpected breaking change could result in unreviewed code execution on the user's machine.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The command `npx clawhub browse` invokes an unpinned package, which means the executed code is not fixed to a reviewed version. If the package publisher account or dependency chain is compromised, users following the documentation could execute attacker-controlled code.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
Using `npx clawhub search "web search"` without a version pin causes runtime resolution to the latest available package version. That creates a supply-chain risk because documentation-driven execution can pull and run altered code outside the skill author's review window.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The unpinned `npx clawhub search "weather"` command can download and execute whatever version is current at the time of use. This exposes users to supply-chain compromise or accidental execution of a malicious or broken release if the package or its dependencies are tampered with.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The command example `npx clawhub search "document"` is unpinned, so it relies on the latest package state at execution time. In security terms, this weakens reproducibility and can turn ordinary documentation usage into a code-execution path for an attacker controlling the published package or a dependency.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The skill recommends `npx clawhub search "tavily"` without constraining the version, which introduces a supply-chain execution risk. Because users are expected to copy and run the command directly, any malicious upstream update could be immediately leveraged.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
Running `npx clawhub search "github"` without a pinned version allows execution of a mutable package artifact. This matters because `npx` is not just a lookup mechanism; it can fetch and run code, so documentation examples become an implicit trust decision on the package ecosystem.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The command `npx clawhub search "calendar"` references an unpinned package, exposing users to dependency and publisher compromise scenarios. Since the skill is explicitly about discovering new tools, users may be more likely to execute many such commands, increasing exposure to supply-chain risk.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The example `npx clawhub search --sort installs` executes an unpinned package version, making the command non-reproducible and vulnerable to malicious upstream changes. This is especially risky in instructional content because users may trust the example and execute it without additional validation.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The unpinned `npx clawhub search --sort stars` command can resolve to whichever package version is current, rather than a vetted one. If the package or dependency graph is compromised, users following the skill could unintentionally run attacker-controlled code.

Static analysis

No suspicious patterns detected.