Back to skill

Security audit

Openclaw Router

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its model-routing purpose, but its documentation includes unsafe install and credential-handling guidance that users should review before installing.

Install only if you are comfortable with a router that can detect local API-key environment variables, write config under `~/.openclaw`, and route prompts or user-selected images to configured cloud providers. Do not run the documented `curl ... | sh` Ollama command or store API keys in `.bashrc` without reviewing safer alternatives such as signed packages, checksums, a virtual environment, and a secret manager.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T03 · Remote Payload Retrieval and Execution

Error
Location
docs/FAQ.md:289
Finding

Unverified Remote Installation Script Executed Directly by the Shell

Content
View full analysis
Remediation
View remediation
/installer.sh printf '%s installer.sh\n' '' | sha256sum --check - less installer.sh sh installer.sh ``` The actual URL, version, checksum, and verification mechanism must come from an authenticated official release channel. ]]>

T08 · Insecure Dependencies

Warning
Location
docs/FAQ.md:276
Finding

Unpinned Python Dependencies Installed from a Mutable Package Index

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
Findings (94)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The reported behavior includes vision analysis, OCR, screenshot inspection, local file/image access, and transmission of image data to external APIs, none of which aligns with the advertised routing purpose. This creates a severe risk of exfiltrating highly sensitive on-screen or local-file content to third-party providers under misleading pretenses.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

The reported behavior includes vision analysis, OCR, screenshot inspection, local file/image access, and transmission of image data to external APIs, none of which aligns with the advertised routing purpose. This creates a severe risk of exfiltrating highly sensitive on-screen or local-file content to third-party providers under misleading pretenses.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The reported behavior includes vision analysis, OCR, screenshot inspection, local file/image access, and transmission of image data to external APIs, none of which aligns with the advertised routing purpose. This creates a severe risk of exfiltrating highly sensitive on-screen or local-file content to third-party providers under misleading pretenses.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The reported behavior includes vision analysis, OCR, screenshot inspection, local file/image access, and transmission of image data to external APIs, none of which aligns with the advertised routing purpose. This creates a severe risk of exfiltrating highly sensitive on-screen or local-file content to third-party providers under misleading pretenses.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The reported behavior includes vision analysis, OCR, screenshot inspection, local file/image access, and transmission of image data to external APIs, none of which aligns with the advertised routing purpose. This creates a severe risk of exfiltrating highly sensitive on-screen or local-file content to third-party providers under misleading pretenses.

Content

No source excerpt is available for this finding.

External Script Fetching

High
Category
Supply Chain
Confidence
98% confidence
Finding

The documentation instructs users to fetch and immediately execute a remote shell script with curl ... | sh. This is dangerous because it gives arbitrary code from a remote server immediate execution on the user's machine without signature verification, checksum validation, or an opportunity to inspect the script.

Content

Scanner excerpt · docs/FAQ.md (reported line 289)May include surrounding context.

md
ollama list

# 如未安装
curl -fsSL https://ollama.com/install.sh | sh

# 重启服务
systemctl restart ollama

Chaining Abuse

High
Category
Tool Misuse
Confidence
98% confidence
Finding

The | sh pipeline is a classic command-chaining risk because it streams untrusted network content directly into a shell interpreter. If the remote host, DNS, CDN, TLS trust chain, or served script is compromised, users could run attacker-controlled commands immediately.

Content

Scanner excerpt · docs/FAQ.md (reported line 289)May include surrounding context.

md
ollama list

# 如未安装
curl -fsSL https://ollama.com/install.sh | sh

# 重启服务
systemctl restart ollama

YARA rule 'backdoor_persistence': Backdoor persistence with malicious payloads (shell commands, SSH key injection, hidden root users) [malware]

High
Category
YARA Match
Confidence
93% confidence
Finding

Appending export DASHSCOPE_API_KEY="sk-..." to ~/.bashrc creates long-lived plaintext credentials in a startup file, which can be exposed through backups, dotfile syncing, accidental sharing, or local compromise. Although not malware in this context, the persistence behavior meaningfully increases the blast radius of API key leakage.

Content

Scanner excerpt · docs/FAQ.md (reported line 310)May include surrounding context.

**

bash
# 检查 Ollama 服务
ollama list

# 如未安装
curl -fsSL https://ollama.com/install.sh | sh

# 重启服务
systemctl restart ollama

Q18: 云 API 检测失败

解决:

bash
# 检查环境变量
echo $DASHSCOPE_API_KEY
echo $OPENAI_API_KEY

# 如未设置
export DASHSCOPE_API_KEY="sk-..."
export OPENAI_API_KEY="sk-..."

# 永久设置(添加到 ~/.bashrc)
echo 'export DASHSCOPE_API_KEY="sk-..."' >> ~/.bashrc
source ~/.bashrc

Q19: 配置保存失败

解决:

bash
# 检查目录权限
ls -la ~/.openclaw/

# 如需要,创建目录
mkdir -p ~/.openclaw
chmod 755 ~/.openclaw

Q20: 模型选择不符合预期

解决:

bash
# 检查阈值配置
cat ~/.openclaw/router_config.yaml | grep -A5 thresholds

# 调整阈值
nano ~/.openclaw/router_config.yaml

# 使用标签强制
[L3] 这个问题很重要,用专家模型

📞 其他问题

Q21: 如何反馈问题?

A:

  • GitHub Issue: h

External Script Fetching

High
Category
Supply Chain
Confidence
99% confidence
Finding

The FAQ tells users to fetch and immediately execute a remote script with curl ... | sh, which bypasses integrity verification, code review, and standard package trust controls. If the remote host, connection, or delivered script is compromised, users may execute arbitrary attacker-controlled code on their systems.

Content

Scanner excerpt · docs/FAQ_en.md (reported line 292)May include surrounding context.

md
ollama list

# If not installed
curl -fsSL https://ollama.com/install.sh | sh

# Restart service
systemctl restart ollama

Chaining Abuse

High
Category
Tool Misuse
Confidence
99% confidence
Finding

The shell pipe into sh is a command-chaining pattern that turns network content directly into code execution. In documentation aimed at broad users, this materially raises the likelihood of supply-chain compromise and accidental execution of malicious payloads without review.

Content

Scanner excerpt · docs/FAQ_en.md (reported line 292)May include surrounding context.

md
ollama list

# If not installed
curl -fsSL https://ollama.com/install.sh | sh

# Restart service
systemctl restart ollama

YARA rule 'backdoor_persistence': Backdoor persistence with malicious payloads (shell commands, SSH key injection, hidden root users) [malware]

High
Category
YARA Match
Confidence
75% confidence
Finding

YARA rule matched a known malware signature (reverse shell, backdoor, ransomware, C2 framework, or info stealer).

Content

Scanner excerpt · docs/FAQ_en.md (reported line 313)May include surrounding context.

Check Ollama service

ollama list

If not installed

curl -fsSL https://ollama.com/install.sh | sh

Restart service

systemctl restart ollama

text

---

### Q18: Cloud API detection failed

**Solution:**
```bash
# Check environment variables
echo $DASHSCOPE_API_KEY
echo $OPENAI_API_KEY

# If not set
export DASHSCOPE_API_KEY="sk-..."
export OPENAI_API_KEY="sk-..."

# Permanent (add to ~/.bashrc)
echo 'export DASHSCOPE_API_KEY="sk-..."' >> ~/.bashrc
source ~/.bashrc

Q19: Configuration save failed

Solution:

bash
# Check directory permissions
ls -la ~/.openclaw/

# If needed, create directory
mkdir -p ~/.openclaw
chmod 755 ~/.openclaw

Q20: Model selection doesn't match expectations

Solution:

bash
# Check threshold config
cat ~/.openclaw/router_config.yaml | grep -A5 thresholds

# Adjust thresholds
nano ~/.openclaw/router_config.yaml

# Use tags to force
[L3] This is important, use expert model

📞 Other Questions

Q21: How to

Missing User Warnings

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The cloud provider screenshot section encourages displaying multiple provider credentials and configuration details across several services without any sanitization warning. In the context of an AI routing skill that aggregates many cloud LLM providers, a leaked screenshot could expose reusable API keys or sensitive tenant information spanning multiple accounts, greatly increasing blast radius and cost-abuse risk.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This markdown file contains user-facing natural-language content solely in Chinese, including headings, instructions, and status summaries. Under the policy, forcing a specific language without user opt-in can be a locale/language policy violation unless the restriction is explicitly justified, which is not stated here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

This markdown file is predominantly written in Chinese, including operational instructions and submission steps, while presenting itself as a final checklist for submission. Under the policy rule, language constraints should offer user choice or clearly justify the locale; this file does not indicate that Chinese is optional or region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

This markdown file presents the checklist primarily in Chinese while also labeling README.md as the English main document and README_zh.md as the Chinese main document. That creates a language-policy inconsistency because the current skill artifact itself defaults to a specific language without offering a language choice or documenting that the file is intended only for a Chinese audience.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This markdown file contains user-facing instructions and descriptions exclusively in Chinese, including headings, FAQ content, support information, and licensing explanations. Under the policy rule for natural-language violations, forcing a specific language without opt-in can exclude users and constitutes a locale/language policy issue when no alternative or justification is provided.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

This markdown file states that the skill auto-detects providers based on environment variables including API keys and cloud credentials. Because markdown files should warn about behaviors affecting privacy or sensitive system data, the absence of an explicit warning that the skill reads credential-related environment variables is a meaningful disclosure gap.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
81% confidence
Finding

The fallback behavior is described as unconditionally falling back to English, which can impose a language preference on users who did not choose it. The policy allows locale constraints only when users are offered a choice or the constraint is justified; this section does not document either beyond a manual override feature.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

This markdown file is written as a user-facing report entirely in Chinese from the title onward, with no indication that language selection is optional or that the skill is intended only for a Chinese-language audience. The policy explicitly calls for flagging language or locale constraints when they are imposed without user opt-in or justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The entire markdown file is written in Chinese, including headings, instructions, pricing details, and calls to action, with no indication that users may choose another language. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale constraint is explicitly justified, which this document does not provide.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The product intro promotes automatic model routing and environment detection, and elsewhere explicitly lists cloud providers/models, but it does not clearly warn that user prompts and possibly environment-derived metadata may be transmitted to third-party cloud services. This creates a real transparency and privacy risk because users may enable the skill assuming processing is local or cost-free when some requests can be sent externally and incur charges.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The quick-start flow tells users to install, configure, and enable the router automatically, but does not warn that activation can change prompt handling, trigger external cloud processing, and generate billable requests. This is dangerous because users may activate the skill without informed consent about data exposure, provider routing, or financial impact.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The README advertises automatic detection of cloud providers via environment variables containing API credentials, but it does not warn users that enabling these providers may send prompts or data to third-party services. In a model-routing skill, that omission is security-relevant because users may assume routing stays local while sensitive content is silently eligible for external transmission whenever credentials are present.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The README states that the router automatically detects multiple cloud-provider credentials from environment variables, but it does not clearly warn users that prompts, context, or other data may be routed to third-party services when those credentials are present. In a model-routing skill, this omission is security-relevant because users may expect local-only behavior while sensitive data is silently eligible for cloud transmission.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

The skill metadata does not declare any explicit tool permissions or allowed-tools, yet the analyzed behavior indicates access to environment variables, filesystem reads/writes, and network use. That mismatch reduces transparency and prevents users from making an informed trust decision, especially because the skill claims benign routing functionality while requiring broader capabilities.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.