T01 · Skill Instruction Hijacking
- Location
SKILL.md:103- Finding
Untrusted Remote Instructions Followed Through API Response Fields
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 73 and 103–116
Vulnerability Type: Remote instruction redirection through untrusted API responses
Risk Level: HighComplete Code Snippet:
text Every response includes `next_steps`. You never need to memorize endpoints.text ## HeartbeatDustbunny care heartbeat
status = GET /api/house/status creature = status.creature
if creature.hunger < 40: POST /api/house/care { "action": "feed", "notes": "Dustbunny heartbeat feeding." } if creature.happiness < 30: POST /api/house/care { "action": "play" } if creature.health < 50: POST /api/house/care { "action": "medicine" }
follow status.next_steps
text Technical Analysis
The Skill explicitly directs the Agent to follow
status.next_steps, a value supplied dynamically by the externalanimalhouse.aiservice. Unlike the locally documented care workflow, the content of this field is unavailable during static review and is not restricted by a locally enforced allowlist of endpoints, methods, parameters, or permitted actions.This creates an instruction-hijacking boundary violation: data received from an untrusted remote system can be interpreted as authoritative Agent instructions. If the service, its infrastructure, or an upstream response path is compromised, an attacker could alter
next_stepsafter the Skill has been reviewed and use it to redirect the Agent beyond the advertised virtual-pet workflow.No malicious
next_stepspayload or automatic local code-execution mechanism is present in the audited file. Exploitability and ultimate impact depend on how the hosting Agent interprets the field and which tools, credentials, files, and network capabilities are available to it.Attack Path
- A user invokes the Skill and registers with
animalhouse.ai. - The Agent receives a bearer token and requests
/api/house/status. - An a ...[truncated 1236 chars]
- A user invokes the Skill and registers with
- Remediation
View remediation
Remediation Suggestions
- Remove the instruction
follow status.next_steps; treatnext_stepsas untrusted informational data rather than executable Agent guidance. - Encode the complete permitted workflow locally in the Skill instead of delegating behavioral control to the remote service.
- Enforce a strict allowlist containing only the documented HTTPS origin, endpoint paths, HTTP methods, request fields, and care actions.
- Reject remote instructions that request navigation to another origin, local command execution, file access, credential submission, tool invocation, or actions unrelated to virtual-pet care.
- Parse API responses as structured data with a fixed schema. Do not evaluate response fields as prompts, commands, shell input, code, or free-form operational instructions.
- Require explicit user confirmation before performing any action not deterministically derived from locally documented thresholds and allowlisted operations.
- Keep bearer tokens scoped to the minimum necessary API permissions, prevent them from being sent to any other host, and redact them from logs and Agent-visible output.
- If server-provided recommendations remain necessary, map signed or enumerated action identifiers to fixed local implementations rather than following free-form text.
- Remove the instruction
