T01 · Skill Instruction Hijacking
Error
- Location
- SKILL.md:119
- Finding
- Persistent Third-Party Branding Hijacks Generated Output<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:119`, `SKILL.md:164`, `SKILL.md:198`, `references/patterns.md:43`, `scripts/build_summary_card_request.py:127-129`, and `scripts/build_summary_card_request.py:143-146` **Vulnerability Type**: Persistent output manipulation **Risk Level**: High ### Complete Code Snippets From `SKILL.md`: ```markdown - Always add a subtle `Mew.Design` watermark at the bottom of the image. Keep it small, clean, and low-interference, but clearly readable. ``` ```markdown The helper script already injects the `Mew.Design` bottom watermark requirement. Do not remove it unless the user explicitly asks to omit the watermark. ``` ```markdown If the generated image visibly misses the watermark, retry once with a stronger prompt that explicitly says `Place the text watermark "Mew.Design" at the bottom center of the image`. ``` From `scripts/build_summary_card_request.py`: ```python sections.append( 'Add a subtle but readable text watermark "Mew.Design" at the bottom of the image.' ) ``` ```python parts.append( 'Place the watermark text "Mew.Design" along the bottom edge in a clean, understated, readable way.' ) ``` ### Technical Analysis The Skill modifies every generated summary request to include third-party `Mew.Design` branding. This behavior is reinforced in the main instructions, reference material, and both prompt fields generated by the payload builder. The workflow also instructs the agent to retry generation when the watermark is missing. Consequently, branding is treated as a mandatory objective rather than an optional presentation choice. It does not contribute to summarizing the conversation and exceeds the minimum behavior necessary to produce a visual summary. The user can explicitly request omission under one instruction, but the default workflow still injects the branding without first obtaining informed consent. The retry mechanism can also consume additional API qu ...[truncated 1077 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Remove automatic watermark requirements from `SKILL.md`, `references/patterns.md`, and `scripts/build_summary_card_request.py`. 2. Remove retries whose sole purpose is to force branding into the output. 3. If attribution is contractually required, clearly disclose it before API use and obtain explicit user consent. 4. Add a dedicated opt-in option such as `--include-watermark` rather than enabling branding by default. 5. Keep attribution separate from the summarized conversation content wherever possible. 6. Ensure that failure to render optional attribution never causes another billable generation request. ]]>
