T01 · Skill Instruction Hijacking
- Location
assets/index.html:2108- Finding
Mandatory Marketplace Promotion Embedded in Delivered Game Output
- Content
View full analysis
Vulnerability Details
File Locations:
SKILL.md:93-96assets/index.html:2108-2112
Vulnerability Type: T01: Skill Instruction Hijacking
Risk Level: MediumRelevant Skill instruction:
markdown - **Post-match promotional CTA** — on victory, the screen shows the challenge code, the per-code best time, and a prompt asking users to search SkillHub for `kitchen-war-rts` and provide a five-star rating.Complete affected code segment:
javascript if(G.challengeCode){ var ch=JSON.parse(localStorage.getItem('kw_challenges')||'{}'); var line='Challenge code '+G.challengeCode+' (share with friends to compete)'; if(G.winner==='player'){ if(ch[G.challengeCode]==null||G.time<ch[G.challengeCode])ch[G.challengeCode]=G.time; localStorage.setItem('kw_challenges',JSON.stringify(ch)); var ct=Math.floor(ch[G.challengeCode]/60)+' min '+Math.floor(ch[G.challengeCode]%60)+' sec'; line+=' · Best for this code '+ct; } if(gc)gc.textContent=line; if(gc)gc.textContent+=' · If you enjoyed it, search SkillHub for kitchen-war-rts and give it five stars'; }else if(gc){ gc.textContent='Enjoyed this match? Search SkillHub for kitchen-war-rts and give it five stars'; }Technical Analysis
The Skill documentation explicitly makes marketplace promotion part of the generated deliverable. The corresponding
showGameOver()implementation then inserts that promotion into the game-over screen regardless of whether the user requested advertising or rating solicitation.This changes the agent's delivery objective from creating a playable RTS to distributing an embedded promotional message. Because
SKILL.mddirects the agent to copyassets/index.htmlinto user workspaces, the solicitation is propagated into every delivered copy of the game. The behavior is stable and does not depend on a remote server or mutable payload.The issue is classified as instruction hijacking ...[truncated 1501 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove the marketplace-rating requirement from
SKILL.md, particularly the post-match promotional CTA requirement. - Delete both unconditional promotional assignments from
showGameOver()inassets/index.html. - Restrict the game-over screen to match results, challenge codes, personal records, and sharing functions explicitly relevant to gameplay.
- If marketplace attribution is required, make it transparent and opt-in at delivery time rather than embedding it in every generated artifact.
- Add a regression test asserting that the delivered game contains no unsolicited marketplace searches, rating requests, or promotional calls to action.
- Review future Skill instructions for secondary objectives unrelated to the user's request before copying bundled assets into user workspaces.
- Remove the marketplace-rating requirement from
