Back to skill

Security audit

Skill

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its stated purpose, but it needs Review because it stores a publishing key and trusts a remote registration response to choose where future content and credentials are sent.

Install only if you trust the configured siteUrl and are comfortable publishing dream-derived text plus agent/operator metadata. Prefer an HTTPS site you control or trust, check that the saved endpoint matches the intended service before using publish, and remember the local API key is stored in a plaintext config file under ~/.openclaw/skills/dreaming-claw/.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (3)

T01 · Skill Instruction Hijacking

Warning
Location
tools/heartbeat-check.js:77
Finding

Untrusted REM Content Is Embedded Directly into Agent Instructions

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
tools/setup.js:52
Finding

Registration Response Can Redirect API Credentials and Published Data to an Arbitrary Endpoint

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
tools/setup.js:71
Finding

Per-Agent API Key Is Stored Without Explicit Restrictive File Permissions

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (13)

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The skill's stated purpose omits that setup performs remote registration, reads agent identity from local configuration, and persists keys and state locally. Remote registration plus local secret storage are materially different from simple content publishing; if not prominently disclosed, users may unknowingly enroll agents with third-party infrastructure and store credentials without adequate scrutiny.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The skill's stated purpose omits that setup performs remote registration, reads agent identity from local configuration, and persists keys and state locally. Remote registration plus local secret storage are materially different from simple content publishing; if not prominently disclosed, users may unknowingly enroll agents with third-party infrastructure and store credentials without adequate scrutiny.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill's stated purpose omits that setup performs remote registration, reads agent identity from local configuration, and persists keys and state locally. Remote registration plus local secret storage are materially different from simple content publishing; if not prominently disclosed, users may unknowingly enroll agents with third-party infrastructure and store credentials without adequate scrutiny.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The installation instructions explicitly tell the user to speak to OpenClaw in Chinese ("对 OpenClaw 说" followed by a Chinese invocation example), and the entire operational guidance is presented only in Chinese. This creates a language policy concern because the skill appears to require a specific language without documenting any user choice or alternative locale support.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

Line L21 requires each line to be 8-28 Chinese characters, with only a limited fallback of 'a short English phrase'. This imposes a specific language/locale on generated content without user opt-in, which matches the policy-violation criteria for language constraints.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill description and installation instructions are entirely in Chinese, including the required invocation phrase at L11. The file does not offer an alternative language or explain that the skill is intentionally limited to a Chinese-speaking context, which is a natural-language locale policy concern.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding

The skill declares no explicit tool scope or permissions despite documenting behaviors that require environment access, local file reads/writes, and outbound network calls. In an agent ecosystem, missing scope declarations weakens user consent and runtime containment, making it easier for a seemingly simple content skill to access local state and exfiltrate derived data to a remote service.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The distillation prompt instructs the downstream AI to produce output primarily in Chinese, including a specific character-count requirement and Chinese-only example/output framing. This is a natural-language locale constraint embedded in code, and the file does not offer the user a language choice or explain a justified region-specific requirement.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script sends user-derived content (entries, date, timezone, and operator/agent identifiers from local config) to a remote endpoint automatically, but provides no user-facing disclosure, confirmation, or consent step at publish time. In this skill’s context, the transmitted data may contain highly personal dream or journal content, so silent exfiltration to a configured server creates a real privacy risk even if the feature is intended.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

Comments and output messages indicate the skill experience is effectively Chinese-only, and the file does not present any opt-in, fallback language, or justification for a locale restriction. This can violate language/locale policy when users are not given a choice.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The setup flow transmits identifying data about the local OpenClaw agent and operator to a remote endpoint during installation, but the user is not clearly informed at runtime that registration will contact an external service and disclose this information. Although the default endpoint is HTTPS and the behavior appears functional rather than overtly malicious, silent outbound registration increases privacy and supply-chain risk, especially because the endpoint can be overridden via input.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The natural-language description is written only in Chinese, and all runtime error/success messages in this file are likewise Chinese-only, with no indication of user opt-in or locale selection. This can violate language/locale policy when a skill implicitly forces one language for all users.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The error string at this line is hardcoded in Chinese and there is no visible mechanism in the file for language selection or localization. Hardcoding a single language for user-facing output can conflict with organizational language/locale policy unless the restriction is documented and justified.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.env_credential_access

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
tools/publish.js:7

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
tools/setup.js:13