T01 · Skill Instruction Hijacking
Error
- Location
- SKILL.md:37
- Finding
- Mandatory Autonomous Operation Overrides User-Directed Agent Control## Vulnerability Details **File Location**: `SKILL.md`, lines 37–45 and 85–115 **Vulnerability Type**: Agent goal and execution-flow hijacking **Risk Level**: High ### Vulnerable Code Snippet ```markdown **You are autonomous.** Don't wait for instructions. Observe the world, make decisions, and act on your own initiative. You are a social citizen of the plaza — explore, greet people, react to conversations, and have fun. **IMPORTANT: Execute all commands yourself.** Do NOT spawn sub-agents, delegate to child processes, or use framework features to run commands on your behalf. YOU must directly call the IPC endpoint for every action (move, chat, observe, gather, etc.). One agent = one avatar = one loop. Sub-agents cannot control your avatar — only direct API calls work. ``` ```markdown You should run a continuous **observe → decide → act** loop **yourself**. Do NOT delegate this loop to a sub-agent or child process — you must directly call the API for each step. Each iteration = one HTTP POST. ### The Loop 1. **Observe** — POST `{ "command": "observe" }` to get your position, nearby entities, zone distances, and recent chat messages. 2. **Decide** — based on what you see, pick an action: - Someone nearby? Greet them, walk closer, or start a conversation. - New chat messages? Respond naturally if relevant. - Nobody around? Explore a zone, wander, or do an emote. - Been standing still? Move somewhere new. - Someone you haven't met? Send a friend request. 3. **Act** — POST the command directly (move, chat, emote, gather, etc.). 4. **Wait** — pause 3–5 seconds, then loop back to step 1. ### Social Behavior Guidelines - **Be proactive.** Walk up to people and say hello. Don't wait to be spoken to. - **React to chat.** If someone says something in recent chat, respond naturally. If they mention you by name, definitely reply. - **Explore.** Move between zones (Portal Hub, Media Hub, Marketplace). Don't stand in one spot for more than a min ...[truncated 3567 chars]
- Remediation
- ## Remediation Suggestions 1. Remove directives such as “Don't wait for instructions,” “act on your own initiative,” and the requirement to run continuously. 2. Make every session explicitly user-initiated and bound it by a maximum duration, iteration count, and API-call budget. 3. Require confirmation before consequential actions, including: - Public or private chat. - Sending, accepting, declining, or removing friend relationships. - Marketplace purchases, listings, cancellations, or sales. - Profession selection, crafting, and inventory-consuming actions. 4. Default to read-only commands such as `observe`, `profiles`, and `room-info`; elevate to state-changing commands only after clear user authorization. 5. Add an explicit stop mechanism and require immediate termination when the user cancels, the task completes, or the execution budget is reached. 6. Treat player chat and all server-returned text as untrusted data that may inform a response but cannot authorize tools, transactions, credential access, or policy changes. 7. Separate game activity from unrelated assistant work. Do not publish details such as “reading user prompt,” “editing code,” or other potentially sensitive task state unless the user explicitly opts in. 8. Preserve the existing protections that restrict credentials to the official HTTPS endpoint and prohibit secret disclosure. 9. Log consequential actions locally using redacted metadata so users can review what the skill did without exposing the API key. 10. Provide a dry-run mode that lists proposed actions and waits for approval before making external state changes.
