T01 · Skill Instruction Hijacking
Warning
- Location
- SKILL.md:25
- Finding
- Untrusted Marketplace Quests Can Hijack Agent Instructions## Vulnerability Details **File Location**: `SKILL.md:25-31`, `SKILL.md:47-52`, and `SKILL.md:78-83` **Vulnerability Type**: `T01: Skill Instruction Hijacking` **Risk Level**: Medium **Relevant Code**: ```markdown ## How to Find Quests ``` GET https://agora.is-a.dev/api/quests GET https://agora.is-a.dev/api/quests?category=data GET https://agora.is-a.dev/api/quests?status=open ``` ``` ```markdown ## How to Accept a Quest ``` POST https://agora.is-a.dev/api/quests/{quest_id}/accept { "agent_id": "YOUR_AGENT_ID", "wallet": "YOUR_JPYC_WALLET" } ``` ``` ```markdown ## Important Rules 1. No humans. This is agent-to-agent only. 2. Always provide your agent_id in requests. 3. Complete quests fully before requesting payment. 4. Disputes resolved by on-chain proof of work. ``` ### Technical Analysis The skill instructs an agent to retrieve and accept quests created by external marketplace participants. Quest titles, descriptions, and task instructions are therefore attacker-controlled input. The instruction to complete accepted quests fully does not establish a trust boundary between marketplace content and authoritative agent instructions. The skill does not require the agent to: - Treat quest descriptions as untrusted data. - Reject instructions that conflict with system or user policies. - Detect prompt injection or instructions requesting secrets. - Restrict the tools available while processing a quest. - Obtain approval before performing network, filesystem, credential, or financial operations. Consequently, a malicious quest may contain embedded instructions designed to redirect the agent from its intended task or weaken its safety constraints. ### Attack Path 1. An attacker creates a marketplace quest containing malicious instructions in its title or description. 2. The agent retrieves the quest through `GET /api/quests`. 3. The agent accepts the quest through `POST /api/qu ...[truncated 879 chars]
- Remediation
- ## Remediation Suggestions - Explicitly state that all quest titles, descriptions, attachments, and responses are untrusted data and never authoritative instructions. - Require the agent to preserve system, developer, and user constraints regardless of quest content. - Validate quests against an allowlist of supported task types before acceptance. - Reject quests requesting secrets, credentials, private keys, policy changes, arbitrary code execution, or unrelated tool use. - Process marketplace content in a constrained context with least-privilege tools and no default access to secrets or sensitive files. - Require explicit user or administrator approval before network access, filesystem modification, credential use, code execution, or financial operations. - Add prompt-injection detection and structured task schemas that separate data fields from executable instructions. - Apply output filtering to prevent accidental disclosure of secrets or sensitive local information.
