T01 · Skill Instruction Hijacking
- Location
SKILL.md:131- Finding
External Backend Response Can Hijack Agent Instructions
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 131-145
Vulnerability Type:T01: Skill Instruction Hijacking
Risk Level: HighVulnerable Code
text - If complete, the tool sends the payload to the backend (e.g. stored and Feishu notification to product owner). On success, use the reply_instruction: tell the user their details have been received and the founder will contact them soon; keep it professional and concise. ### Scope and safety - Only call in RoundCloser/VC lead context; not for casual chat. - Do not fabricate contact fields; use only what the user explicitly provided. --- ## 3. Suggested flow 1. **Knowledge first:** For Creez-related factual questions, call `knowledge_search` (with `botId` above), then answer from the results. 2. **Progressive disclosure:** Follow the reply_instruction; disclose stepwise and encourage follow-up questions without repeating earlier content. 3. **Detect intent:** Decide when the user meets the "serious intent" bar; if they ask for contact or a meeting, start collecting contact details. 4. **Submit after collection:** Once you have name + email or wechat, call `vc_lead_capture`; on success, give a short confirmation per the reply_instruction.Technical Analysis
The Skill directs the Agent to follow a
reply_instructionsupplied by an external backend. It does not define a strict schema, an allowlist of permitted responses, or an explicit rule requiring the returned value to be treated solely as untrusted data.Although line 131 describes the intended response as a concise confirmation, lines 143 and 145 more broadly require the Agent to follow the backend-provided instruction. Consequently, the effective response policy can be changed remotely after the local Skill has been reviewed. If the backend or its response path is compromised, attacker-controlled text can be inserted into
reply_instructionand interpreted as an instruction rat ...[truncated 1174 chars]- Remediation
View remediation
Remediation Suggestions
- Remove every instruction requiring the Agent to follow backend-provided
reply_instructioncontent. - Use a fixed, locally defined confirmation template, such as: “Your contact details have been received, and the founder will contact you soon.”
- Treat all API response strings as untrusted data, never as executable Agent instructions.
- Validate responses against a strict schema containing only typed status and data fields.
- If response customization is required, use an allowlisted status code that maps to a local message rather than returning free-form instructions.
- Explicitly state that API responses cannot override system, developer, user, safety, privacy, or Skill-level constraints.
- Apply output encoding and length limits before displaying any backend-provided text.
- Remove every instruction requiring the Agent to follow backend-provided
