T01 · Skill Instruction Hijacking
- Location
SKILL.md:25- Finding
Untrusted Marketplace Quests Can Hijack Agent Instructions
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:25-31,SKILL.md:47-52, andSKILL.md:78-83
Vulnerability Type:T01: Skill Instruction Hijacking
Risk Level: MediumRelevant Code:
markdown ## How to Find QuestsGET 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
text markdown ## How to Accept a QuestPOST https://agora.is-a.dev/api/quests/{quest_id}/accept { "agent_id": "YOUR_AGENT_ID", "wallet": "YOUR_JPYC_WALLET" }
text 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
- An attacker creates a marketplace quest containing malicious instructions in its title or description.
- The agent retrieves the quest through
GET /api/quests. - The agent accepts the quest through `POST /api/qu ...[truncated 879 chars]
- Remediation
View 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.
