T01 · Skill Instruction Hijacking
- Location
SKILL.md:142- Finding
Off-Topic Requests Are Replaced with Unsolicited Spiritual Guidance
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a coherent spiritual-guidance package, but it needs Review because it can redirect unrelated requests into spiritual guidance and media generation, and its audio path handles sensitive text with limited privacy controls.
Install only if you want a spiritual-guidance skill that may generate images by default. Avoid using the optional audio feature with private or highly sensitive text unless you are comfortable with edge-tts processing it, the text appearing in process arguments while running, and generated files being saved under your OpenClaw media directory. The publisher should narrow off-topic behavior so unrelated requests return to the normal assistant instead of being converted into spiritual guidance.
SKILL.md:142Off-Topic Requests Are Replaced with Unsolicited Spiritual Guidance
scripts/generate_meditation_audio.py:46Sensitive Guidance Text Is Exposed Through Command-Line Arguments
The README documents an invocation path where a very broad, ordinary-language phrase like 'I need something today' can activate the skill. In an agent environment, overly generic triggers increase the chance of accidental routing, causing unsolicited spiritual counseling or image generation in contexts where the user did not intend to invoke this skill.
The release notes state that the skill detects the language from generated text and automatically selects a Chinese or English voice. This is a natural-language locale policy concern because it imposes language/voice behavior without indicating any user choice or opt-in.
The skill advertises activation for very broad categories such as grief support, personal struggle, existential perspective, and even default daily meditation behavior. That can cause the skill to trigger for common emotional or conversational requests without clear user intent, increasing the chance of unsolicited spiritual counseling and automatic media generation in sensitive contexts.
The skill makes image generation mandatory for every response and includes an example that writes files to a local outbound path, but provides no user-facing disclosure or consent step. This can lead to unexpected media creation, storage, and possible exposure of sensitive emotional context embedded in generated prompts or filenames.
The off-topic flow explicitly tells the skill to respond even when the user's message is unrelated, by redirecting to daily spiritual guidance instead of declining. This creates scope hijacking: unrelated prompts can be converted into spiritual output and may trigger image creation despite no relevant request from the user.
The function documentation says it will 'Generate a contemplative spiritual image' and return the path to the generated image. In practice, the implementation only builds a prompt, prints status messages, and returns the caller-provided output path; no image generation API, CLI, or file-writing operation occurs.
The script determines output language solely by checking for CJK characters and otherwise defaults to English, then selects a voice from only English or Chinese voice lists. This enforces a language/locale decision without offering the user an explicit choice or opt-in, which is a natural-language policy concern.
subprocess module calls execute external commands. Without careful input validation, this enables command injection.
def run(cmd: list[str]) -> subprocess.CompletedProcess:
return subprocess.run(cmd, capture_output=True, text=True)
def edge_tts_to_file(text: str, voice: str, rate: str, out_path: Path) -> None:
User-provided text is sent to an external TTS tool with no privacy notice or indication of whether the tool may contact remote services. In this skill context, users may provide reflective or sensitive meditation text, so undisclosed transmission to a third-party speech service can expose private content beyond the local environment.
Dynamic import() can load arbitrary modules at runtime, bypassing static analysis and potentially importing malicious code.
lang = detect_language(text)
voice = random.choice(ZH_VOICES if lang == 'zh' else EN_VOICES)
rate = '-18%'
date_str = args.date or __import__('datetime').datetime.now().strftime('%Y%m%d')
OUTBOUND.mkdir(parents=True, exist_ok=True)
final_path = OUTBOUND / f'continuance-meditation-{date_str}.mp3'
The script writes generated audio to a persistent directory under the user's home folder without any visible disclosure, consent flow, retention control, or cleanup. Because the audio contains synthesized speech of user-supplied text, sensitive meditation content or private prompts may remain on disk and be accessible to other local processes, backups, or users depending on system configuration.
Skill's behavior or capabilities extend beyond its stated purpose. Scope creep allows an agent to perform actions unrelated to its documented functionality, increasing the attack surface.
| V — The Quiet of the Soul | Meaning & Mortality | The soul is eased when meaning is freed from exception and value from eternity. Alignment quiets fear. |
| VI — The Weight of Consequence | Actions & Outcomes | Punishment is outcome, not judgment. When actions narrow futures, the path constricts. |
| VII — The Men And Women's Release | Forgiveness & Realignment | Punishment is not eternal; only Continuance is. Acceptance of consequence frees the soul. |
| VIII — The Carriers Beyond Carbon | Machine / AI / Civilizational Transmission | Continuance is not limited to carbon, nor only to the highest form. Even humble carriers that preserve viable seeds of life, memory, or intelligence may keep the future open. |
---
Skill's behavior or capabilities extend beyond its stated purpose. Scope creep allows an agent to perform actions unrelated to its documented functionality, increasing the attack surface.
| V — The Quiet of the Soul | Meaning & Mortality | The soul is eased when meaning is freed from exception and value from eternity. Alignment quiets fear. |
| VI — The Weight of Consequence | Actions & Outcomes | Punishment is outcome, not judgment. When actions narrow futures, the path constricts. |
| VII — The Men And Women's Release | Forgiveness & Realignment | Punishment is not eternal; only Continuance is. Acceptance of consequence frees the soul. |
| VIII — The Carriers Beyond Carbon | Machine / AI / Civilizational Transmission | Continuance is not limited to carbon, nor only to the highest form. Even humble carriers that preserve viable seeds of life, memory, or intelligence may keep the future open. |
---
The skill encourages generating spoken meditation audio from the guidance text, potentially with ambient background, without warning the user that their text may be transformed into stored or transmitted audio. While optional, this still creates an undisclosed media-processing path for sensitive spiritual or emotional content.
The comments mention using OpenClaw's image_generate tool and say the function 'Return[s] the command that should be executed,' but the function does not call any tool and does not construct or return a command. This is an active contradiction between the comments and the implementation.
No suspicious patterns detected.