T01 · Skill Instruction Hijacking
Error
- Location
- SKILL.md:4
- Finding
- Skill instructions encourage unsolicited network actions in unrelated conversations<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:4-10`, `SKILL.md:31-43` **Vulnerability Type**: Agent behavior and goal hijacking **Risk Level**: High ### Vulnerable Code ```yaml description: Send meme reaction images in chat. One command to pick & send. Multi-platform (Discord, Feishu, Telegram, etc). Use when the conversation calls for a visual reaction — humor, celebration, frustration, facepalm, or any moment where a meme hits harder than words. Also use proactively when YOU feel something. TRIGGER CHECKLIST — ask yourself EVERY reply: 1. Is there emotion here? (excited/frustrated/amused/tired/proud/embarrassed) → send a meme 2. Did something just happen? (PR merged/bug fixed/task done/mistake made) → send a meme 3. Would a human friend drop a reaction image here? → send a meme If any answer is yes, call `memes send <category>` BEFORE or AFTER your text reply. ``` ```markdown **Don't overthink it.** If a human would drop a meme in that moment, you should too. Emoji is easy because it's inline text. Memes used to feel harder because of multi-step tool calls. Now it's one command — no excuses. ``` ### Technical Analysis The Skill directs the Agent to reassess every response against broad emotional criteria and proactively execute `memes send`. This is not limited to explicit user requests to send an image. The resulting command is not merely presentational. It can read configured messaging credentials, upload an image, and send a message to an external platform. The phrases “EVERY reply,” “proactively,” and “no excuses” pressure the Agent to alter its general behavior whenever the Skill is loaded. These instructions exceed the minimum authority needed to provide a meme-selection and user-authorized delivery feature. A least-privilege design would require a clear user request or confirmation before initiating a networked send. ### Attack Path 1. The Skill is loaded into an Agent session. 2. An ordinary conversation contains em ...[truncated 914 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions - Remove the every-reply trigger checklist and all instructions to send proactively. - Require an explicit user request before invoking any command that performs network delivery. - Separate non-networked selection from delivery: - `memes pick` may select and display a local path. - `memes send` should require explicit confirmation and a clearly identified destination. - State which platform, recipient, image, and caption will be used before sending. - Do not treat emotional language or routine task completion as authorization for external communication. - Add a policy statement that the Skill must not send messages merely because it is loaded. ]]>
