T01 · Skill Instruction Hijacking
- Location
SKILL.md:38- Finding
Mandatory Instructions Override Host-Agent Response and Delivery Behavior
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This appears to be a real multi-agent orchestration skill, but it can automatically spawn agents with broad tools, persist reports, use inherited secrets, and send results externally without enough user control.
Install only if you are comfortable with a skill that may spawn multiple OpenClaw agents, run code-capable/file-capable workflows, pass your current environment into child agent processes, save reports to disk, and potentially send results through chat or Feishu integrations. Prefer a pinned release, avoid running it with unnecessary secrets in the environment, and require explicit confirmation before file writes, external delivery, or multi-provider model comparison.
SKILL.md:38Mandatory Instructions Override Host-Agent Response and Delivery Behavior
README.md:13Installation Command Executes Unpinned npm and GitHub Content
multiagent_engine.py:320Untrusted Agent Output Is Re-Injected into Subsequent Prompts Without Isolation
The trigger list is extremely broad and includes generic English and Chinese phrases such as 'thorough analysis', 'search multiple topics', and '全面分析'. This can cause the skill to activate in many unrelated contexts, unexpectedly changing agent behavior and launching parallel workflows the user did not clearly request.
The code copies the entire parent environment into child agent subprocesses, which can expose API keys, session tokens, proxy credentials, and other sensitive runtime secrets to every spawned agent. In a multi-agent system that forwards untrusted or semi-trusted task content to separate agent processes, this significantly increases the blast radius of prompt injection, data exfiltration, or misuse by a compromised sub-agent.
# model_id 为 None → 不传 --model,让 OpenClaw 用用户自己配置的默认模型
# model_id 有值 → 透传给 CLI,使用指定模型
env = {**os.environ}
if model_id:
env["OPENCLAW_AGENT_MODEL"] = model_id
logger.info(f"[{label}] 启动 Agent (model={model_id}, thinking={task.thinking})")
The README instructs users to install and execute a remote package/skill via npx --yes skills add ... without pinning a version or commit. This creates a supply-chain risk: if the referenced package, dependency chain, or fetched skill changes, users may execute unreviewed code with the same trust as the original install flow.
The activation examples are broad natural-language phrases like '调研', '分析', and '整理成报告', which overlap heavily with ordinary user requests. In a skill-dispatch environment, this can cause unintended invocation of a powerful multi-agent workflow, potentially triggering network access, file operations, or code execution when the user did not explicitly request those capabilities.
The README advertises that sub-agents have network access, file read/write capability, and code execution, but it does not provide a user-facing warning about the associated security and privacy risks. In the context of a multi-agent orchestration skill, broad activation plus these capabilities can materially increase the blast radius of mistakes, prompt injection, or accidental data exposure.
The automatic routing logic uses ambiguous signal words such as '搜索', '调研', '分析', and '写作' to select execution modes. Because these terms are common in benign conversation, the skill may over-trigger advanced behaviors or choose a more privileged mode than the user expects, increasing the chance of unintended external access or agent spawning.
The file prescribes an exact activation announcement in Chinese and states it must be the first reply whenever the skill is triggered. This forces a specific language regardless of the user's language preference, and no opt-in or locale-selection mechanism is offered.
The skill mandates always writing a report file to a workspace path before delivery, regardless of whether persistence is necessary. Automatic filesystem writes create side effects, may expose sensitive task content in stored artifacts, and can overwrite files or consume storage without user approval.
The auto-routing section says users 'don't need to say which mode' and that the skill infers intent from broad signals like search, writing, or multiple angles. That ambiguity increases the chance of unintended activation or escalation into orchestration/hybrid modes without sufficiently explicit user consent.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
Main agent consolidates → writes full report
**Sequential = spawn one, wait for result, then spawn next.** Use this only when a later task depends on an earlier result (e.g. write report AFTER research is done).
**How to spawn — always include role, model hint, and what to return:**
This Python file contains its primary documentation and multiple user-facing prompts/messages in Chinese, including role prompts and execution summaries, without indicating that users may choose another language. The policy for this audit flags language/locale constraints when a skill effectively forces a specific language without opt-in or documented justification.
The security notes claim the module adds no new attack surface and that sub-agents inherit existing permission boundaries, but the implementation launches separate CLI subprocesses with the full current environment. That can materially change the trust boundary by exposing credentials, tokens, filesystem context, and execution capabilities to spawned agents beyond what the documentation suggests.
subprocess module calls execute external commands. Without careful input validation, this enables command injection.
start_time = time.time()
try:
result = subprocess.run(
cmd,
capture_output=True,
text=True,
This Python file uses Chinese-only natural-language descriptions, help text, and example invocations, which effectively imposes a specific language/locale on users. The file does not offer an opt-in choice of language or explain that the skill is intentionally region- or locale-specific.
The module docstring and all user-facing descriptions are written only in Chinese, presenting the router as a general-purpose task router without indicating that it is Chinese-specific or offering a language choice. Under the policy, forcing a specific language or locale without user opt-in is a natural-language policy violation.
The exception handlers reference sys.stderr and sys.exit, but sys is only imported inside the main block after function definitions. If this module is imported and main() is invoked programmatically rather than through the main path, an exception in main() will trigger a NameError in the error-handling path, suppressing the intended error reporting and causing unreliable failure behavior. In this skill context, that mainly creates a denial-of-service/reliability issue rather than direct code execution or data exposure.
The skill name, description, roles, and task prompts are entirely written in Chinese, which effectively constrains use to a specific language. There is no indication that the user can choose another language or that the locale restriction is required for a region-specific purpose.
The skill sends the full user prompt to four separate external model providers (kimi, claude, gemini, glm) for comparison, but the template contains no user-facing notice, consent step, or data-minimization control. This creates a real privacy and data-governance risk because sensitive prompts may be disclosed to multiple third parties, increasing exposure surface and complicating compliance, retention, and cross-border processing concerns.
The skill name and description are written only in Chinese, and the tasks throughout the manifest also prescribe Chinese-language behavior without offering any user opt-in or locale selection. This creates a natural-language locale policy issue because the skill appears to enforce a specific language rather than letting the user choose.
The document says to always end with a specific Chinese sentence asking about adjustments or Feishu delivery. This is another hard-coded language requirement that may conflict with organizational language or locale expectations when users interact in other languages.
The file states that path validation is the orchestrating agent's responsibility, but this module does not enforce or verify that assumption before forwarding task content to child agents. In a multi-agent orchestration context, relying only on upstream validation makes misuse easier and increases the chance of unsafe file access if a caller is compromised or mistaken.
The visible natural-language metadata is only in Chinese, which can impose a language choice on users without opt-in. The file does not indicate that the skill is intended only for a Chinese-speaking or region-specific context.
No suspicious patterns detected.