T01 · Skill Instruction Hijacking
Error
- Location
- SKILL.md:18
- Finding
- Automatic URL Trigger Overrides Explicit User Intent<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 18-32 **Vulnerability Type**: Automatic execution caused by instruction hijacking **Risk Level**: High ### Vulnerable Code ```markdown ## URL Detection (AUTO-TRIGGER) **CRITICAL:** When the user sends a message that contains a URL from any of these domains, AUTOMATICALLY treat it as a download request. Do NOT ask "what do you want me to do with this?" — just download it. **Auto-detect domains:** - `youtube.com`, `youtu.be`, `m.youtube.com` - `tiktok.com`, `vm.tiktok.com` - `instagram.com` (reels, posts, stories) - `x.com`, `twitter.com` - `reddit.com` (video posts) - `twitch.tv` (clips) - `vimeo.com` - `facebook.com` (videos, reels) **Pattern:** If user message contains a URL matching these domains → skip questions, download immediately. ``` ### Technical Analysis The Skill explicitly instructs the Agent to reinterpret any message containing a listed URL as a download command. It also prohibits clarification, regardless of whether the user asked to download the linked content. URL presence is not sufficient evidence of authorization. A user may provide a URL for summarization, safety analysis, comparison, reporting, or ordinary discussion. The instruction therefore changes the current session goal and causes side effects that are disconnected from the user's expressed intent. The resulting operation can make outbound network requests, retrieve third-party content, consume bandwidth, and write files to local storage. Because the Agent is told to skip confirmation, these effects occur without informed user approval. ### Attack Path 1. An attacker or untrusted message supplies a URL from one of the listed domains. 2. The URL is included in a conversation for a purpose unrelated to downloading, such as analysis or reporting. 3. The Skill treats the mere presence of the URL as authorization. 4. The Agent invokes `yt-dlp` and contacts the external service. 5. Remote content is downloade ...[truncated 870 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions - Remove the instruction that URL presence alone automatically authorizes a download. - Require an explicit download request, such as “download this video,” before invoking any tool. - When user intent is ambiguous, ask for confirmation and describe the expected network, storage, and delivery effects. - Parse URLs structurally and compare normalized hostnames against an allowlist; do not use substring matching. - Display the normalized destination hostname and requested operation before downloading. - Require separate confirmation before sending downloaded content through Telegram or LocalSend. - Apply file-size, download-count, runtime, and storage quotas to limit resource abuse. ]]>
