Back to skill

Security audit

Starter Flow

Security checks for vulnerabilities and agentic risk

Overview

This skill is an onboarding installer that broadly activates and installs multiple external skills by default, while under-disclosing that installation depends on the ClawHub registry.

Review the five named dependencies before installing, and treat this as a bulk remote skill installer rather than a purely local tool. Install only the skills you actually want, verify their publishers or versions if your OpenClaw setup supports that, and be aware that broad trigger phrases could invoke this flow during ordinary onboarding conversations.

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
install.sh:145
Finding
Unpinned Third-Party Skills Installed from a Remote Registry<![CDATA[ ## Vulnerability Details **File Location**: `install.sh:25-26`, `install.sh:145`, and `README.md:140-144` **Vulnerability Type**: Unverified and unpinned third-party dependencies **Risk Level**: Medium ### Vulnerable Code ```bash # All third-party Skills are selected by default. declare -a SELECTED=(true true true true true) ``` ```bash if clawhub install "$name"; then echo -e " ${GREEN}✓${NC} Installation succeeded" else echo -e " ${RED}✗${NC} Installation failed; skipping" fi ``` The README also directs users to install the packages without version constraints: ```bash clawhub install token-estimator clawhub install smart-router clawhub install command-flow clawhub install skill-dashboard clawhub install token-water-meter ``` ### Technical Analysis The installer retrieves five third-party Skills through the `clawhub` registry without specifying immutable versions, cryptographic digests, trusted publisher identities, or other integrity constraints. The source and behavior of those dependencies are not included in this project and therefore could not be audited as part of the reviewed artifact. Because installation resolves the package names to whatever releases the registry currently serves, the effective installed content can change after this project has been reviewed. Selecting every dependency by default also increases the likelihood that users will install all remote components without individually evaluating them. No evidence establishes that the named packages are currently malicious. The vulnerability is the absence of controls that would prevent a future compromised release, publisher account, or registry response from being trusted automatically. The documentation and installer also claim that operation is local and has no cloud dependency, although `clawhub install` requires interaction with an external package registry. This may prevent users from making a fully informed trust decision. ### Attack Path 1. An attack ...[truncated 1248 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin every dependency to a reviewed immutable version rather than resolving only by package name. 2. Where supported, lock dependencies using cryptographic digests or signed release identifiers. 3. Verify package signatures, publisher identities, and checksums before installation. 4. Maintain a lock file or manifest containing each approved package name, version, publisher, and digest. 5. Default every package selection to disabled so users must explicitly opt into each third-party component. 6. Display the resolved version, publisher, source registry, requested capabilities, and integrity status before requesting confirmation. 7. Abort installation when signature or digest verification fails instead of silently continuing. 8. Periodically re-audit dependency updates before changing pinned versions. 9. Update the security statements to disclose that installation contacts the ClawHub registry and that installed Skills have independent security and privacy characteristics. ]]>
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (6)

Vague Triggers

Medium
Confidence
93% confidence
Finding
The trigger phrase "新手启动" is very broad and presented as a natural-language activation command without any namespace, confirmation, or scope limitation. This can cause unintended invocation during normal conversation or make it easier for another prompt/context to steer the agent into installing or recommending multiple skills the user did not explicitly request through a trusted command channel.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger list includes very broad everyday terms such as “新手”, “启动”, “starter”, and “第一次”, while metadata marks the skill priority as "critical". This increases the chance of accidental invocation during normal conversation, which could launch an installation flow or influence user actions without clear intent.

Vague Triggers

Medium
Confidence
93% confidence
Finding
The skill advertises that users can speak naturally and it will understand, but it does not define clear trigger boundaries, disambiguation rules, or safeguards against incidental matches. In a starter/install skill, ambiguous activation is more dangerous because it can steer users into installing multiple dependent skills or changing their environment unintentionally.

Intent-Code Divergence

Medium
Confidence
89% confidence
Finding
At L039-L040 the script presents a safety statement saying '所有技能本地运行,无云端依赖' ('all skills run locally, no cloud dependency'). However, the installation logic at L145 runs 'clawhub install' for each selected skill, which implies fetching or installing skills from an external hub/service rather than purely local-only behavior. This is an active contradiction between the script's documentation-style claim and what the code does.

Natural-Language Policy Violations

Medium
Confidence
94% confidence
Finding
The UI offers a language choice at L062, but the implementation keeps Chinese as the default and responds to English selection with "English support coming in Phase 2..." at L093. This is a natural-language locale policy issue because the skill does not actually provide a real language choice or user opt-in for the Chinese-only experience.

Vague Triggers

Medium
Confidence
92% confidence
Finding
The trigger examples listed as “新手”, “启动”, and “starter” are generic everyday terms that can easily appear in unrelated conversations. In an agent skill context, overly broad triggers increase the chance of accidental invocation, causing the skill to activate outside user intent and potentially chain into installation or onboarding actions unexpectedly.

Static analysis

No suspicious patterns detected.