Back to skill

Security audit

OpenClaw Setup (ModelWise)

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly an OpenClaw setup guide, but its examples and troubleshooting steps could expose an assistant to untrusted users or delete local OpenClaw data without adequate warnings.

Review and tighten the configuration before installing: bind the gateway to 127.0.0.1 unless you intentionally need LAN access, use Telegram pairing or an explicit allowlist instead of open wildcard access, avoid pipe-to-shell installers when possible, pin package versions, and do not run the reset commands unless you have a full backup outside ~/.openclaw.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
Findings (6)

T03 · Remote Payload Retrieval and Execution

Error
Location
SKILL.md:58
Finding

Remote installer is downloaded and executed without integrity verification

Content
View full analysis
Remediation
View remediation
/install.sh printf '%s %s\n' '' '/tmp/nvm-install.sh' | sha256sum --check - bash /tmp/nvm-install.sh rm -- /tmp/nvm-install.sh ``` ]]>

T08 · Insecure Dependencies

Warning
Location
publish.sh:16
Finding

Global npm installations use mutable or unspecified dependency versions

Content
View full analysis
/dev/null; then echo "📦 Installing clawhub CLI..." npm i -g clawhub fi ``` `scripts/check-installation.sh` recommends the same mutable installation: ```bash echo " Install: npm install -g openclaw@latest" ``` ### Technical Analysis `openclaw@latest` resolves a mutable distribution tag, while `clawhub` is installed without any explicit version. Consequently, users may install package content that did not exist when this Skill was reviewed. npm installation can execute package lifecycle scripts, and global installation makes the resulting executable available system-wide for the current npm prefix. The publishing script also installs `clawhub` automatically when it is absent. This combines dependency retrieval and execution with a publishing workflow that has access to an authenticated ClawHub session. No evidence shows that either named package is malicious; the vulnerability is the avoidable supply-chain exposure caused by mutable resolution and automatic global installation. ### Attack Path 1. An attacker compromises a package maintainer or npm publishing token, or a malicious release is otherwise assigned to the `latest` tag. 2. The user follows the Skill instructions or runs `publish.sh`. 3. npm resolves the current mutable package version and downloads it. 4. npm executes any applicable lifecycle scripts with the user's permissions. 5. A malicious package can access local files and environment data; during publishing, it may also target C ...[truncated 453 chars]
Remediation
View remediation
` and `clawhub@`. 2. Document the expected package publisher, package digest or registry integrity information, and the review date. 3. Do not automatically install publishing tools from inside `publish.sh`. Exit with a clear prerequisite message instead. 4. Require users to install and verify the publishing CLI separately before it is used with an authenticated session. 5. Prefer project-local development dependencies and locked dependency graphs over global installation where supported. 6. Review lifecycle scripts before installation, and consider `--ignore-scripts` where package operation does not require them. 7. Use a trusted, explicitly configured npm registry and enable account protections such as MFA for package publishers. ]]>

T05 · Unauthorized Access and Privilege Escalation

Error
Location
examples/openclaw.json:4
Finding

Example configuration exposes the gateway and Agent to untrusted users

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
examples/telegram-setup.md:198
Finding

Troubleshooting guidance may print a Telegram bot credential

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:241
Finding

Windows maintenance command terminates every Node.js process

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:324
Finding

Reset procedure recursively deletes credentials and all OpenClaw state

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
Findings (17)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

There is a clear description-behavior mismatch. The declared purpose says this skill helps users install, configure, and start OpenClaw on their systems. However, the code shown is a publishing utility for distributing a skill to ClawHub. Its primary actions are related to release management and platform publishing: ensuring the clawhub CLI exists, verifying login status, validating skill files, collecting a changelog, and invoking clawhub publish. It does not perform OpenClaw installation, configuration, gateway startup, or OS-specific setup tasks. These are materially different purposes, so this should be flagged as a mismatch.

Content

No source excerpt is available for this finding.

Chaining Abuse

High
Category
Tool Misuse
Confidence
94% confidence
Finding

Piping curl output directly into bash combines external content retrieval with immediate execution, eliminating the user's chance to review what will run. In the context of an installation skill, this pattern is especially risky because users are primed to trust and copy-paste setup commands verbatim.

Content

Scanner excerpt · SKILL.md (reported line 60)May include surrounding context.

bash
# Install nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash

# Reload shell
source ~/.zshrc  # or ~/.bashrc

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% confidence
Finding

rm -rf ~/.openclaw irreversibly removes the entire OpenClaw state directory, including credentials, sessions, logs, workspace, and possibly custom skills or memory data. In a troubleshooting guide, destructive recursive deletion is dangerous because users may execute it quickly under stress without understanding the blast radius.

Content

Scanner excerpt · SKILL.md (reported line 328)May include surrounding context.

bash
# Backup and reset (macOS/Linux)
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak
rm -rf ~/.openclaw
openclaw onboard

# Backup and reset (Windows PowerShell)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% confidence
Finding

rm -rf ~/.openclaw irreversibly removes the entire OpenClaw state directory, including credentials, sessions, logs, workspace, and possibly custom skills or memory data. In a troubleshooting guide, destructive recursive deletion is dangerous because users may execute it quickly under stress without understanding the blast radius.

Content

Scanner excerpt · SKILL.md (reported line 328)May include surrounding context.

bash
# Backup and reset (macOS/Linux)
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak
rm -rf ~/.openclaw
openclaw onboard

# Backup and reset (Windows PowerShell)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The troubleshooting guidance recommends kill -9 <PID>, killall, Stop-Process, and taskkill /F style force termination without warning that this may abruptly stop the gateway or other unrelated Node-based processes. Abrupt termination can cause data corruption, lost logs, and service interruption, especially where process matching is broad.

Content

No source excerpt is available for this finding.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
76% confidence
Finding

The guide tells users to run sudo chown -R $(whoami) ~/.npm, which performs a recursive privileged ownership change. While often used to fix npm permission issues, privileged recursive filesystem operations can unintentionally alter permissions more broadly than needed and normalize unsafe use of sudo in setup documentation.

Content

Scanner excerpt · SKILL.md (reported line 305)May include surrounding context.

3. Permission denied:

bash
# macOS/Linux
sudo chown -R $(whoami) ~/.npm

# Windows (run PowerShell as Administrator)
npm cache clean --force

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The reset instructions delete the entire ~/.openclaw or %USERPROFILE%\.openclaw directory, which can erase credentials, sessions, logs, workspace data, and other state. Because the guide presents this as routine troubleshooting without a prominent data-loss warning or narrower alternatives, users may irreversibly destroy important local data.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The example configuration exposes the gateway on 0.0.0.0 and also enables a Telegram interface with permissive defaults, creating remotely reachable control surfaces rather than a narrowly scoped local setup example. In an installation/setup skill, shipping an example that normalizes broad network exposure can lead users to deploy an unnecessarily accessible agent service without understanding the security implications.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · examples/openclaw.json (reported line 51)May include surrounding context.

json
]
      },
      openai: {
        baseUrl: "https://api.openai.com/v1",
        apiKey: "${OPENAI_API_KEY}",
        models: [
          { id: "gpt-5.2", name: "GPT-5.2", contextWindow: 128000 },

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/configuration-reference.md (reported line 131)May include surrounding context.

md
]
      },
      openai: {
        baseUrl: "https://api.openai.com/v1",
        apiKey: "${OPENAI_API_KEY}",
        models: [
          { id: "gpt-5.2", name: "GPT-5.2", contextWindow: 128000 },

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The Telegram bot interface is enabled with dmPolicy set to open and allowFrom set to ["*"], which effectively permits interaction from any sender. That creates an unnecessary remote command/input channel for an agent setup example and increases the chance of unauthorized use, abuse, or prompt-driven actions through the bot interface.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The file combines credential-based integration (Telegram bot token and API keys via environment variables) with an openly reachable inbound messaging configuration, but provides no visible warning about exposure, abuse, or secret-handling expectations. While the secrets themselves are placeholders, the example may encourage unsafe deployment patterns where operators enable remote access without appreciating the consequences.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
99% confidence
Finding

Using allowFrom: ["*"] is overly permissive access control because it authorizes messages from any sender instead of an approved allowlist. If the bot can trigger agent behaviors, an attacker or random third party could interact with the system and potentially cause data exposure, unwanted actions, or service misuse.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · examples/telegram-setup.md (reported line 5)May include surrounding context.

md
Complete guide to set up Telegram integration with OpenClaw.

## Step 1: Create Telegram Bot

1. Open Telegram and search for **@BotFather**
2. Send `/newbot` command

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The guide presents a public bot configuration using dmPolicy: "open" and allowFrom: ["*"] without a clear warning that this exposes the bot to messages from any Telegram user. In the context of an AI gateway, this can lead to unauthorized interaction, privacy issues, abuse, and unexpected cost or data exposure if the bot is connected to internal capabilities.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The always-active group configuration instructs users to set requireMention: false and activation: "always" but does not warn that the bot will process every message in the group. This increases the risk of inadvertent collection of sensitive group content, noisy triggering, prompt injection from any participant, and elevated operational cost.

Content

No source excerpt is available for this finding.

External Script Fetching

Low
Category
Supply Chain
Confidence
93% confidence
Finding

The command fetches a remote script and pipes it directly into bash, executing network-retrieved code without inspection or integrity verification. If the remote content, transport path, or upstream repository is compromised, users can execute attacker-controlled code immediately on their system.

Content

Scanner excerpt · SKILL.md (reported line 60)May include surrounding context.

bash
# Install nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash

# Reload shell
source ~/.zshrc  # or ~/.bashrc

Static analysis

No suspicious patterns detected.