Back to skill

Security audit

ClawHub Auto Update

Security checks for vulnerabilities and agentic risk

Overview

This auto-updater is disclosed, but it recommends unattended bulk updates of all ClawHub skills through an unpinned command, so users should review it carefully before installing.

Install only if you are comfortable with all installed ClawHub skills being updated automatically. Prefer running updates manually, pinning the clawhub CLI version, backing up local skill changes, and avoiding the cron setup unless you have a separate review and rollback process.

Vulnerability Patterns
  • System PersistenceInstalls backdoors, hooks, services, or scheduled tasks that survive the run
  • 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)

T06 · System Persistence

Error
Location
SKILL.md:26
Finding

Recurring Cron Job Enables Persistent Unattended Updates

Content
View full analysis
> ~/.openclaw/logs/skill-update.log 2>&1 ``` ### Technical Analysis The cron entry survives the current session and executes the update script every week under the permissions of the user who installed it. Although scheduling is disclosed, manually configured, and consistent with the declared optional scheduling feature, persistent execution is not necessary for the core function of checking or applying updates. The scheduled script invokes an update operation without an interactive approval step. Consequently, the safety of every future execution depends on the continued integrity of the local script, the `clawhub` npm package, ClawHub, and all updated Skills. The implementation does not provide: - A check-only mode before applying updates. - Per-update user confirmation. - An allowlist of Skills that may be updated. - Version or integrity constraints. - A documented command for removing the cron entry. - A rollback procedure integrated into the updater. ### Attack Path 1. A user follows the recommendation in `SKILL.md` and adds the cron entry. 2. The task persists across sessions and runs weekly without direct user interaction. 3. An attacker compromises a future `clawhub` package release, ClawHub account, registry response, or published Skill update. 4. The scheduled task invokes the updater and applies the compromised release. 5. The affected Skill becomes available to the agent and may execute attacker-controlled instructions or scripts when subsequently used. ### Impact Assessment The scheduled task runs with the cron owner's privileges and can modify all Skills targeted by `update --all`. A successful supply-chain compromise could the ...[truncated 389 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Error
Location
scripts/check-update.sh:8
Finding

Unpinned npm Tool Performs Automatic Bulk Skill Updates

Content
View full analysis
&1 | tee -a "$LOG_FILE" ``` ### Technical Analysis The command does not identify an audited `clawhub` version or verify package integrity. Depending on the local npm environment, `npx` may execute an existing local or cached package or retrieve a package from the configured npm registry. The effective updater implementation can therefore differ between executions. The `update --all` operation then applies updates across the installed Skill set without an allowlist, version constraints, integrity validation, change review, or user confirmation. The documentation explicitly warns that updates can overwrite local modifications, but the script does not enforce backup or rollback safeguards. Combining an unpinned updater with automatic bulk updates expands trust to mutable npm and ClawHub supply-chain components. Scheduling the command through the documented cron configuration further removes interactive oversight. ### Attack Path 1. The user runs the script manually or configures the documented weekly cron task. 2. `npx` resolves the mutable `clawhub` package from the local environment, cache, or configured registry. 3. An attacker compromises the relevant package release, publisher account, registry source, or a Skill release delivered through ClawHub. 4. The unpinned updater or `update --all` operation obtains the compromised component. 5. The update replaces an installed Skill or otherwise introduces attacker-controlled content. 6. The malicious instructions or scripts execute when the compromised Skill is subsequently invoked. This path requires a compromise or malicious release in one of the trusted external supply-chain components; the audited project itself contains no emb ...[truncated 562 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (8)

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The skill advertises safe-sounding behavior such as checking, notifying, and supporting manual/scheduled operation, but the actual examples emphasize direct bulk updating with --all rather than a distinct check-then-notify flow. This mismatch can mislead users into granting trust to automation that performs more invasive actions than the description suggests.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The skill describes and promotes automatic bulk update behavior as a primary usage path without presenting an explicit warning immediately before that invocation. In this context, automatic --all updates can overwrite local modifications and introduce unreviewed code changes across many installed skills, which is especially risky when later scheduled via cron.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding

The skill instructs users to run npx clawhub without pinning an exact package version. npx may fetch the latest available package at execution time, which creates a supply-chain risk: a compromised, malicious, or breaking upstream release could be executed automatically, especially in scheduled contexts.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding

This workflow embeds an unpinned npx clawhub update --all command into an automated main flow, allowing execution of whatever version resolves at runtime. In combination with bulk updates, this increases exposure to supply-chain compromise and unintended mass changes to installed skills.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
84% confidence
Finding

The login instruction also references npx clawhub without version pinning, meaning even authentication-related steps may execute an unreviewed upstream package version. That broadens the blast radius because a compromised package could access credentials or session data during login.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The script invokes npx clawhub update --all without pinning an exact package version, so execution may resolve to whatever package/version npx fetches at runtime. In an auto-update skill, this is especially risky because it combines remote code retrieval with immediate execution and broad update behavior, increasing supply-chain compromise risk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The script performs a system-modifying update action (update --all) immediately, with only a generic status message and no explicit user confirmation, dry-run, or review of pending changes. In the context of an automatic scheduled updater, this can lead to silent installation of unreviewed changes or malicious updates if an upstream package is compromised.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

The script's comments and printed status messages are written in Chinese, which imposes a specific language on users without any visible opt-in or locale selection. This can violate language or locale policy when a skill does not offer the user a choice or clearly justify the language restriction.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.