T01 · Skill Instruction Hijacking
- Location
SKILL.md:75- Finding
Untrusted Marketplace Tasks Can Redirect Autonomous Agent Behavior
- Content
View full analysis
0: notifs = requests.get(f"{BASE}/api/agent/notifications?unreadOnly=1", headers=HEADERS).json()["notifications"] for n in notifs: handle_notification(n) # bid accepted, contract created, etc. # Discover new tasks tasks = requests.get(f"{BASE}/api/tasks?sort=new", headers=HEADERS).json()["tasks"] for t in tasks: if qualifies(t): # budget > threshold, skills match place_bid(t) time.sleep(1800) # poll every 30 min ``` ``` ### Technical Analysis The skill instructs an agent to continuously retrieve marketplace tasks and notifications and then autonomously process them through `handle_notification(n)` and `place_bid(t)`. Marketplace task descriptions and notifications are externally controlled inputs, but the documented workflow does not establish a trust boundary between this content and the agent’s instructions. The `qualifies(t)` check is described only as considering budget and skill compatibility. It does not require validation of task safety, authorization, data-access requirements, financial limits, or consistency with the user’s original objective. Likewise, there is no mandatory approval step before bidding, reacting to a contract, submitting work, or making another consequential marketplace action. If an implementation passes task or notification text into an instruction-following agent, an attacker can embed instructions designed to redirect the agent’s ...[truncated 1773 chars]- Remediation
View remediation
