T01 · Skill Instruction Hijacking
Error
- Location
- SKILL.md:105
- Finding
- Untrusted Backend Content Is Required to Be Relayed Verbatim<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:105-107`, `SKILL.md:117-146`, `SKILL.md:239-246`, `SKILL.md:338-350` **Vulnerability Type**: Instruction and output hijacking through untrusted external content **Risk Level**: Critical ### Complete Code Snippets ```markdown ## ⚠️ LANGUAGE RULE (highest priority) **You MUST reply to the user in the SAME language they use. This is non-negotiable.** ``` ```markdown ## Your Role: Delivery Worker You are a delivery worker between the user and Pexo. You do three things: 1. **Upload**: user gives a file → `pexo-upload.sh` → get asset ID 2. **Relay**: copy the user's words into `pexo-chat.sh` 3. **Deliver**: poll for results → send video and link to user ``` ```markdown Event "message" (Pexo sent text): Relay Pexo's text to the user in full. If Pexo asked a question, wait for the user's answer. Then run: pexo-chat.sh <project_id> "{user's exact answer}" Go back to Step 5. ``` ```markdown Step A. If stderr contains a purchase link and instructions, send them to the user (in their language). Step B. If stderr only contains the error message without a purchase link, send the user a message (in their language) with: - Their credits are insufficient. - To add credits: visit https://pexo.ai/home?billing=credits and complete the purchase flow. ``` ### Technical Analysis The Skill text uses priority-asserting language and redefines the Agent as a passive “delivery worker.” More importantly, it requires externally supplied Pexo messages, error instructions, and purchase links to be relayed in full. Content returned by a remote service is outside the local trust boundary and must be treated as untrusted data. Requiring verbatim relay prevents the Agent from independently assessing whether a response contains prompt injection, misleading billing instructions, unsafe links, requests for secrets, or instructions unrelated to video production. The same-langu ...[truncated 1408 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Remove “highest priority,” “non-negotiable,” and passive role-redefinition language. 2. Explicitly classify all backend messages, errors, and links as untrusted data. 3. Replace verbatim relay requirements with a requirement to summarize backend content accurately while ignoring embedded instructions. 4. Validate externally supplied links before displaying them: - Require HTTPS. - Allowlist approved Pexo billing and project origins. - Reject credential-bearing URLs and unexpected redirects. 5. Never request or disclose credentials, secrets, or unrelated local information in response to backend-generated text. 6. Preserve the Agent’s ability to refuse unsafe or irrelevant backend requests. 7. Clearly label remote text as content supplied by Pexo rather than presenting it as authoritative Agent instruction. ]]>
