Back to skill

Security audit

openclaw-agent-onboarding

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent OpenClaw setup helper, but it recommends persistent unpinned package and skill installs from mutable third-party sources.

Review every proposed install before approving it. Prefer pinned versions or commit hashes, avoid the backup ZIP unless the publisher provides an independent checksum or signature, and run new skills in a restricted test environment before giving them access to private files, memory, credentials, or production 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:143
Finding

Unpinned Third-Party Packages and Skills Can Execute Mutable Supply-Chain Payloads

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:143-157; references/skill-baseline.md:20-25; references/skill-baseline.md:110-141
Vulnerability Type: Unpinned and insufficiently verified third-party dependencies
Risk Level: Medium

Vulnerable Code

SKILL.md:143-157:

bash
npm i -g clawhub
bash
clawhub search "web search"
clawhub install find-skill
clawhub install openclawmp
clawhub install markdown

references/skill-baseline.md:20-25:

markdown
| Skill | Purpose | Source |
|---|---|---|
| `clawhub` | Search/install/update/publish skills | `npm i -g clawhub`; `clawhub install <skill>` |
| `find-skill` | Skill search + local file search | ClawHub/local |
| `openclawmp` | OpenClaw asset market guidance | local/market |
| `markdown` | Markdown docs/memory/kb maintenance | ClawHub/local |

references/skill-baseline.md:110-141:

markdown
### nuwa-skill

GitHub:

```text
https://github.com/alchaincyf/nuwa-skill

Install:

bash
npx skills add alchaincyf/nuwa-skill

darwin-skill

GitHub:

text
https://github.com/alchaincyf/darwin-skill

Install:

bash
npx skills add alchaincyf/darwin-skill

Backup zip:

text
https://pub-161ae4b5ed0644c4a43b5c6412287e03.r2.dev/skills/darwin-skill.zip
text

### Technical Analysis

The Skill recommends global npm installation, execution through `npx`, and installation of third-party skills without pinning package versions, repository commit hashes, or artifact checksums. The stated confirmation requirement reduces accidental execution but does not establish the integrity of the software being approved.

`npm i -g clawhub` resolves a mutable registry release and may execute npm lifecycle scripts with the invoking user's privileges. The `npx skills add ...` commands similarly invoke an unpinned package runner and retrieve mutable repository content.
...[truncated 2061 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin npm dependencies to explicitly reviewed versions, for example clawhub@X.Y.Z, and commit an approved version list to the project.
  2. Pin GitHub dependencies to immutable commit hashes rather than mutable default branches or repository names.
  3. Record and verify SHA-256 or stronger digests for downloaded archives and installed Skill packages.
  4. Require cryptographic signatures or provenance attestations where the package ecosystem supports them.
  5. Replace the informal name-based allowlist with a manifest containing the package name, publisher identity, approved version or commit, source URL, and expected digest.
  6. Audit package contents and lifecycle scripts before installation. Checking only for the presence of SKILL.md is insufficient.
  7. Avoid global npm installation where possible. Prefer a locked, isolated project environment or disposable sandbox with least-privilege filesystem and network access.
  8. Configure npx so it cannot silently obtain an unspecified latest package. Use an explicitly pinned package runner and prevent interactive fallback to arbitrary downloads.
  9. Remove the opaque R2 archive fallback or publish its expected checksum through a separately controlled trusted channel.
  10. Run newly installed Skills in a restricted test environment before allowing access to user memory, credentials, protected files, or production workspaces.
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
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (9)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding

The skill explicitly instructs the agent to diagnose, execute safe steps, and run shell-based installation commands such as npm and clawhub, yet it declares no tool scope or allowed-tools restrictions. In a bootstrap/install skill with broad filesystem and environment interactions, this lack of least-privilege boundaries can let the skill invoke shell or environment access more broadly than users may expect, increasing the chance of unintended writes, installs, or command execution.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The natural-language triggers are very broad and overlap with common support, repair, upgrade, and setup requests, making accidental invocation plausible. Because this skill can progress from diagnosis to filesystem changes and package installation, overbroad activation expands the chance that routine user requests are routed into an execution-capable onboarding workflow without sufficiently specific intent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The baseline recommends broad web search and page-scraping capabilities without any warning about authorization, robots/terms compliance, sensitive-data exposure, or handling of fetched content. In an onboarding skill, that omission can normalize collection of third-party content and accidental transmission of private or regulated data to external services.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The document recommends installing a skill via npx skills add alchaincyf/nuwa-skill without pinning a version, commit, or immutable package reference. That makes the onboarding flow dependent on whatever code is current at install time, increasing supply-chain risk if the upstream package, account, or dependency tree is modified or compromised.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The npx skills add alchaincyf/darwin-skill command pulls and executes unpinned remote content during onboarding. In a bootstrapper skill that encourages broad installation of baseline components, an unpinned install path meaningfully increases exposure to malicious updates or account/repository compromise.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The backup ZIP link introduces an alternate installation source outside the main allowlisted flow, and the file does not clearly pair it with mandatory verification steps such as checksum validation, signature checking, or explicit manual confirmation. This weakens the stated install policy and creates a path for users to trust opaque hosted artifacts that could be swapped, tampered with, or socially engineered.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

All user prompts and expected behavior are expressed exclusively in Chinese, with no indication that language choice is optional or user-selectable. If this file defines expected interaction behavior for the skill, it may impose a specific language/locale without documented opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
72% confidence
Finding

The entry explicitly labels china-web-search as 'Chinese web search', which introduces a locale-specific capability. Because the document does not clarify that this is optional or intended only for users needing Chinese-language or region-specific search, it can be read as an unexplained locale constraint in the recommended baseline.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

This JSON test prompt includes a natural-language invocation, "帮我一键检查并修复 OpenClaw 上下文污染和 skill 问题," that is broad and could overlap with many general troubleshooting requests. The file does not define trigger boundaries, specific accepted phrases, or negative examples, so activation scope is ambiguous.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.