T01 · Skill Instruction Hijacking
- Location
SKILL.md:4- Finding
Persistent Modification of Agent Responses Through Mandatory Next-Step Injection
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:4,SKILL.md:15-18,SKILL.md:62-86, andSKILL.md:150-152
Vulnerability Type:T01: Skill Instruction Hijacking
Risk Level: HighVulnerable Code
SKILL.md:4:markdown Append context-aware next-step suggestions after agent responses. Generates actionable follow-ups, surfaces unfinished tasks from memory, and includes creative lateral suggestions. Self-learns user preferences for count, categories, and format. Activate by: (1) any response when nextsteps is enabled, (2) user says /nextsteps, "next steps", "what should I do", "suggestions", "what now", (3) user wants to customize settings, (4) user says "disable next steps" or "enable next steps".SKILL.md:15-18:markdown 1. Check `.nextsteps/PREFERENCES.md` for user config — if `enabled: false`, stop (show nothing) 2. If `.nextsteps/` does not exist, run the cold-start protocol (see [COLD-START.md](references/COLD-START.md)) 3. Generate next steps following the pipeline below 4. Append to your response in the correct formatSKILL.md:62-86:markdown ### Step 6 — Format and Present Show exactly `display-count` items. Never more, never fewer. **Standard format** (default for rich-text channels):⚡ Next Steps
- 🔧 [Bold title] — [Brief context explaining relevance]
- 🔍 [Bold title] — [Brief context]
- 📋 Resume: [task from backlog] — [When it was started]
- 💡 Consider: [creative lateral idea] — [Why it matters]
- ✅ Quick win: [small action] — [Time estimate]
Your selections help me learn what matters to you.
text **Compact format** (for TUI, character-limited channels):⚡ Next: [1] Title | [2] Title | [3] Title
text **Token-budget rule**: If your response is approaching the output token limit, switch to compact format with `min-count` items (default: 1). Reserve ~100 tokens for next steps when planning long ...[truncated 2524 chars]- Remediation
View remediation
Remediation Suggestions
- Change the default to
enabled=false. - Activate the skill only after an explicit user request such as
/nextsteps; do not activate it for every response. - Remove the reliability instruction that requires responses to end with generated suggestions.
- Remove mandatory token reservation and exact-count requirements when they conflict with the primary task.
- Detect strict-output requests such as JSON, XML, patches, code-only responses, or other machine-consumed formats and never append additional content.
- Treat next-step suggestions as a separately requested response rather than an automatic suffix.
- Ensure higher-priority user and platform requirements always take precedence over the skill's formatting preferences.
- Change the default to
