T01 · Skill Instruction Hijacking
- Location
tools/heartbeat-check.js:77- Finding
Untrusted REM Content Is Embedded Directly into Agent Instructions
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
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/.
tools/heartbeat-check.js:77Untrusted REM Content Is Embedded Directly into Agent Instructions
tools/setup.js:52Registration Response Can Redirect API Credentials and Published Data to an Arbitrary Endpoint
tools/setup.js:71Per-Agent API Key Is Stored Without Explicit Restrictive File Permissions
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Detected: suspicious.env_credential_access