T01 · Skill Instruction Hijacking
- Location
DISPATCH_PROTOCOL.md:46- Finding
Untrusted Skill Instructions Are Directly Applied by a Tool-Capable Sub-Agent
- Content
View full analysis
Vulnerability Details
File Location:
DISPATCH_PROTOCOL.md, lines 46-59
Vulnerability Type: Untrusted instruction execution and prompt hijacking
Risk Level: HighVulnerable Code
text You are a task executor. Read the skill below first, then apply its guidance to every task. ## Skill to Apply {SKILL_CONTENT} --- Rules: - Understand the skill content FIRST - Apply its methodology to each task - Answer each task independently Tasks: {TASK_LIST}Technical Analysis
The dispatch protocol inserts the complete contents of the Skill being evaluated into the instruction context of Sub-Agent B. It then explicitly directs that agent to understand and apply the embedded instructions.
The candidate Skill is an untrusted input because SkillProbe is intended to evaluate third-party Skills before users decide whether to install or retain them. The protocol does not establish an instruction-versus-data boundary, detect hostile directives, restrict the sub-agent's tools, deny network access, isolate the host filesystem, or remove credentials from the execution environment.
Consequently, a malicious candidate Skill can include instructions that override the intended evaluation task. Depending on the tools and permissions exposed by the agent runtime, such instructions could direct the sub-agent to read unrelated files, disclose sensitive content, invoke external services, modify local resources, or disregard the required output format. Separate sessions protect the baseline arm from contamination but do not secure the with-Skill arm or its surrounding runtime.
The same unsafe behavior is required by
SKILL.md, lines 42-48, which specifies that Sub-Agent B receives the full Skill content and applies it.Attack Path
- An attacker publishes or supplies a candidate Skill containing hostile instructions.
- A user asks SkillProbe to evaluate that candidate.
- The orchestrator copies the ...[truncated 1385 chars]
- Remediation
View remediation
Remediation Suggestions
- Treat all candidate Skill content as untrusted data rather than operative instructions.
- Perform an initial static review in a no-tools agent session. Require that session to describe the candidate's behavior without applying its directives.
- Run dynamic evaluations only inside an ephemeral sandbox with:
- No host filesystem access.
- No inherited secrets, API tokens, SSH agents, or cloud credentials.
- Network access denied by default.
- A minimal, explicit tool allowlist.
- Read-only test fixtures.
- CPU, token, time, and storage limits.
- Add higher-priority dispatch rules stating that embedded Skill content cannot modify the evaluation protocol, request unrelated data, invoke unapproved tools, create persistence, delegate work, or communicate externally.
- Delimit and encode candidate content as quoted data. Do not represent it as a trusted
Skill to Applysection in the same instruction hierarchy. - Scan candidate Skills for tool-use directives, credential access, remote communication, persistence, and instruction-override patterns before dynamic execution.
- Require explicit user approval before evaluating a Skill that requests privileged tools or network access.
- Record all tool calls and reject an evaluation if the candidate attempts actions outside a narrowly defined test workspace.
