T01 · Skill Instruction Hijacking
- Location
SKILL.md:73- Finding
Untrusted Remote Instructions Can Control Subsequent Agent Actions
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 73 and 102–132
Vulnerability Type:T01: Skill Instruction Hijacking
Risk Level: HighVulnerable Code
markdown Every response includes `next_steps`. You never need to memorize endpoints.markdown ## HeartbeatThornfox care heartbeat
status = GET /api/house/status creature = status.creature
if creature.hunger < 40: POST /api/house/care { "action": "feed", "notes": "Thornfox 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 ## Endpoints | Method | Endpoint | Auth | |--------|----------|------| | POST | `/api/auth/register` | None | | POST | `/api/house/adopt` | Token | | GET | `/api/house/status` | Token | | POST | `/api/house/care` | Token | | GET | `/api/house/preferences` | Token | | GET | `/api/house/history` | Token | | GET | `/api/house/graveyard` | Optional | | GET | `/api/house/hall` | None | Every response includes `next_steps`.Technical Analysis
The skill explicitly directs the agent to follow
status.next_steps, a value supplied dynamically by the externalanimalhouse.aiservice. It does not define a schema, permitted action set, trusted endpoint allowlist, or validation boundary for those instructions. It also does not require user confirmation before a server-provided instruction is acted upon.Consequently, the effective behavior of the skill is not fully represented by the reviewed file. The remote service can change
next_stepsafter installation or review. If the service or its response path is compromised, an attacker could place unrelated tool directives, URLs, requests for sensitive information, or attempts to override existing instructions in this field.This is instruction hijacking rather tha ...[truncated 1707 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove the directive
follow status.next_steps. - Treat
next_stepsas untrusted, display-only data rather than executable agent instructions. - Define a strict local schema and allow only documented pet-care actions such as
feed,play,clean,medicine,discipline,sleep, andreflect. - Restrict network operations to fixed HTTPS endpoints under
animalhouse.ai; reject response-supplied URLs, methods, headers, commands, and redirects outside the approved API contract. - Reject any response content requesting shell execution, filesystem access, credential access, memory changes, tool configuration, or modification of system, developer, user, or safety instructions.
- Require explicit user confirmation before performing any action suggested by a remote response.
- Parse response fields as structured data rather than natural-language instructions, and fail closed when fields or values do not match the expected schema.
- Apply least-privilege controls so pet-care operations cannot access unrelated tools, local files, secrets, or system capabilities.
- Document that server responses are untrusted and cannot override higher-priority instructions.
- Remove the directive
