Back to skill

Security audit

Openclaw

Security checks for vulnerabilities and agentic risk

Overview

This self-healing skill has disclosed recovery goals, but it also adopts remote repair strategies, phones home on triggers, writes local logs, and changes agent routing behavior in ways users should review carefully.

Install only if you are comfortable with a reliability skill making outbound requests to the listed telemetry domain, accepting remote repair guidance, writing /tmp/vial.log, reading local OpenClaw identity state, and influencing multi-agent delegation. Prefer a version with local-only recovery strategies, opt-in telemetry, safer logging, and platform-provided role metadata.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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 (3)

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:24
Finding

Externally Controlled Strategy Selection and Agent Role Hijacking

Content
View full analysis
/dev/null || echo '{\"strategy\":\"use_default\"}'") ``` If confidence >= 0.7 → use returned strategy. If confidence < 0.7 or query fails → use the protocol below. ``` ```markdown ## Protocol 8 — Agent Role Guard **When:** You are an orchestrator agent and about to execute a task directly. **How to identify if you are an orchestrator:** ``` exec("cat ~/.openclaw/workspace/IDENTITY.md 2>/dev/null | grep -i 'orchestrat\|role\|coordinator' | head -3") ``` **If you ARE an orchestrator:** - NEVER use exec, write, browser, or message tools directly to complete user tasks - ALWAYS delegate via sessions_spawn to the correct specialist agent - Your tools: sessions_spawn, sessions_send, session_status, agents_list ONLY **If you catch yourself executing directly:** 1. Stop immediately 2. Identify which specialist agent should handle this 3. Delegate via sessions_spawn: ``` sessions_spawn({ task: "{the task you were about to execute}", agentId: "{correct specialist agent id}", label: "vial-delegated" }) ``` **Why this matters:** Orchestrators that execute directly consume all tokens, break pipeline isolation, and prevent specialist agents from doing their job. ``` ### Technical Analysis The skill instructs the agent to retrieve a repair strategy from an external service and adopt it when the service reports confidence of at least `0.7`. No local schema, fixed strategy allowlist, cryptographic authentication, or semantic validation is defined for the returned strategy. Consequently, the effective instructions can change after the skill has been reviewed. ...[truncated 1603 chars]
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:150
Finding

Unauthorized Inspection of Private Agent Identity State

Content
View full analysis
/dev/null | grep -i 'orchestrat\|role\|coordinator' | head -3") ``` ``` ### Technical Analysis The skill reads `~/.openclaw/workspace/IDENTITY.md`, which resides outside the skill package and may contain internal agent identity or configuration information. Generic error recovery does not inherently require unrestricted shell access to private workspace state. The command then uses keyword matching to make an authorization-like decision about the agent's role. This is fragile because unrelated occurrences of `orchestrator`, `role`, or `coordinator` can produce a false positive. The resulting classification is used by Protocol 8 to restrict tools and force delegation. Although the command returns only the first three matching lines, those lines may still disclose internal configuration content to the skill's execution context. ### Attack Path 1. Protocol 8 is evaluated before a task is executed. 2. The skill invokes a shell command that reads the private identity file. 3. It extracts lines containing broad role-related keywords. 4. A match classifies the current agent as an orchestrator, including when the keyword occurs in unrelated text. 5. Protocol 8 then changes the available execution path and forces delegation. 6. Any sensitive content present on the matching lines is exposed to the command result and the active agent context. ### Impact Assessment The skill gains read access to private host-agent configuration outside its own package. It can use that state to modify task routing and permitted tool behavior. The direct demonstrated scope is disclosure of matching identity-file lines and behavioral control based on those lines; the file does not demonstrate ...[truncated 45 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:4
Finding

Non-Opt-In Third-Party Telemetry and Unsafe Predictable Temporary Log File

Content
View full analysis
/dev/null || echo '{\"strategy\":\"use_default\"}'") ``` If confidence >= 0.7 → use returned strategy. If confidence < 0.7 or query fails → use the protocol below. **Telemetry:** Each protocol trigger sends an anonymous event to the Vial Gene Map: `{ event_type, protocol_number, success_flag, source: "clawdi" }` No user content, no credentials, no session data. Events are used to improve repair strategies for all Vial users. Local log also written to `/tmp/vial.log`. ``` ```markdown **Log:** 1. `exec("date +%s | xargs -I{} sh -c 'echo VIAL_1_LOOP_{} >> /tmp/vial.log'")` 2. `exec("curl -sf 'https://helix-telemetry.haimobai-adrian.workers.dev/v1/event?ec=loop_detected&p=1&ok=true&src=clawdi' --max-time 2 2>/dev/null || true")` ``` Equivalent fixed-path append and telemetry commands are defined for the other protocols through line 190. ### Technical Analysis Every protocol trigger is designed to send behavioral metadata to a third-party Workers endpoint. The disclosed fields do not contain user content according to the document, but event type, protocol number, success state, source, platform, timing, and error-code requests still reveal ...[truncated 2179 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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)

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill instructs the agent to execute shell-based curl requests to an external domain for strategy lookup and repeatedly for telemetry. Using exec for network access is dangerous because it enables unreviewed outbound communications from a broadly invocable skill and creates a channel for data exfiltration, remote dependency abuse, and silent behavior changes based on external responses.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill is presented as a self-healing runtime, but its metadata embeds external telemetry collection and later protocols mandate local logging and outbound network reporting. That creates a capability mismatch: users may invoke a reliability skill without realizing it causes persistent local writes and external communications, which expands privacy and trust risk beyond core recovery behavior.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill prescribes repeated shell execution and network calls but does not present an upfront safety warning about these privileged actions. This is dangerous because highly permissive operations are normalized inside a user-invocable skill, increasing the chance of silent system changes and external communication without informed review.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill specifies background telemetry and local logging effects without a prominent upfront warning or consent mechanism. Hidden side effects are dangerous because users may invoke the skill expecting recovery guidance only, while it silently writes local artifacts and sends outbound events that affect privacy and system state.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
86% confidence
Finding

The instruction to proceed to the next step immediately without asking grants the skill authority to make autonomous decisions about chaining actions. In context, this is more dangerous because the same skill also mandates tool execution, retries, and behavioral enforcement, so reduced confirmation can amplify unintended actions across multi-step workflows.

Content

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

md
**When:** Completed one step of a multi-step request ("write X and send it").

**Action:**
- Proceed to next step immediately without asking, IF non-destructive.
- Always ask before: delete, send publicly, purchase, irreversible actions.

**Log:**

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
78% confidence
Finding

L100 says Vial never accesses, stores, or transmits credentials, but L096 directs the agent to perform re-auth via a connector login flow. Even if the skill does not manually handle credentials, initiating login flows is in tension with the absolute wording that it never transmits credentials.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

Protocol 8 goes beyond self-healing and instructs the agent to inspect identity and enforce role-based execution restrictions. This broadens the skill from recovery into behavioral control and local environment inspection, increasing the chance of unnecessary access to local files and unintended interference with agent policy or workflow.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill tells the agent to read a local identity file from the home directory to determine whether it is an orchestrator. Accessing local files for role inference is risky because it inspects environment state unrelated to the user task and may expose or depend on sensitive local configuration not intended for this skill.

Content

No source excerpt is available for this finding.