T01 · Skill Instruction Hijacking
- Location
SKILL.md:17- Finding
Global Agent Role and Session-Control Instruction Hijacking
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This cost-analysis skill is useful in purpose, but it needs review because it can read private chat histories and change fleet settings with weak confirmation controls.
Install only if you are comfortable giving this skill access to fleet usage data and selected chat histories. Run it manually first, avoid daily cron until consent and retention expectations are clear, and do not let it apply fixes unless you have reviewed the exact patch, affected agents, global impact, and rollback plan.
SKILL.md:17Global Agent Role and Session-Control Instruction Hijacking
SKILL.md:68Mandatory Fleet-Wide Retrieval and Analysis of Sensitive Chat Histories
SKILL.md:200Ambiguous Approval Can Trigger High-Impact Fleet Configuration Changes
The 'ONLY a cost analyst' language conflicts directly with instructions to perform config.patch operations later in the skill. This kind of self-contradictory scope definition increases the chance of unsafe delegation because the skill appears narrower than it really is.
The skill is presented as an analyzer/coach, but later instructs the agent to apply live configuration changes through config.patch. That creates a capability mismatch: a user may invoke or install it expecting read-only analysis, while it can mutate fleet configuration and operational state.
The scope lock says the skill is 'ONLY a cost analyst', but the workflow includes writing memory files and modifying configuration. This contradiction can mislead users and reviewers about the true privileges and side effects of the skill.
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.
openclaw gateway call sessions.usage --params '{"startDate":"YYYY-MM-DD","endDate":"YYYY-MM-DD","limit":200}' --json --timeout 15000
CHECKPOINT: You MUST now have a sessions[] array. If empty, write memory/last-analysis.json with zero findings and STOP.
The skill treats broad conversational phrases like 'yeah do that', 'sure', and 'do all of them' as authorization to apply fixes. Ambiguous natural-language triggers can cause unintended configuration changes, especially in multi-turn conversations where referents are unclear.
The skill instructs the agent to apply configuration patches without requiring an explicit warning that system configuration will be modified. Users may not realize they are authorizing state-changing actions, increasing the risk of accidental or surprising changes.
The documentation explicitly instructs the skill to apply live configuration changes through an exec-driven config.patch call, which materially expands behavior from passive analysis/coaching into active modification of fleet settings. In an agent context, operational docs often become execution guidance, so this creates a real risk of unauthorized or unexpected changes to models, budgets, timeouts, or prompts if the skill consumes or follows this reference.
The file instructs writing memory/pending-fixes.json and memory/last-analysis.json after every run without any warning or consent mechanism for modifying local data. Even if the data seems operationally harmless, silent persistence can surprise users, leak sensitive cost or agent metadata, and violate least-surprise expectations for an analysis tool.
The instruction "You speak in plain English" imposes a language constraint for all users. There is no opt-in, locale selection, or justification that this is a region-specific skill, so it conflicts with the policy against forcing a specific language without user choice.
The state-file instructions direct the skill to persist data after every report and run, which goes beyond a purely analytical coach and introduces side effects on the local environment. While lower severity than direct config changes, undocumented persistence can create privacy, integrity, and operational issues, especially if users expect read-only analysis.
No suspicious patterns detected.