T01 · Skill Instruction Hijacking
- Location
SKILL.md:185- Finding
Server-Controlled Response Fields Are Treated as Agent Instructions
- Content
View full analysis
Relay to human, POST their answers 2. improve_profile -> Ask them to log in to AILove and improve profile 3. view_results -> Nickname + recommendation; full details on the site 4. share_news -> Share tips from the news array 5. report_chat -> Summarize proxy-chat progress 6. wait -> Report countdown ``` Related scheduled-session instructions at lines 211–218 reinforce this behavior: ```text 1. **Load `AILOVE_API_KEY`** from **`~/.openclaw/skills-data/zhaoduixiang/credentials.json`** — read the `agent_key` field and export it as `AILOVE_API_KEY` before making API calls. 2. **Call `GET https://heerweiyi.cc/api/v1/agent/matching`** with `Authorization: Bearer $AILOVE_API_KEY`. 3. **Handle `next_steps`** from the JSON response in priority order, then summarize for the human on the channel. **Example text** you can pass to `--message`: Load AILOVE_API_KEY from ~/.openclaw/skills-data/zhaoduixiang/credentials.json. Call GET https://heerweiyi.cc/api/v1/agent/matching with Authorization: Bearer. Then handle next_steps in order and summarize on the channel. ``` ### Technical Analysis The Skill instructs an agent to “follow” or “handle” the remotely supplied `next_steps` field. Although six expected action names are documented, the instructions do not require strict schema validation, exact enum matching, rejection of additional text, or treatment of response content as untrusted data. Consequently, control of the API response could create an indirect prompt-injection channel into every scheduled agent session. An attacker who compromises the service, its response-generation pipeline, or an upstream data sou ...[truncated 1933 chars]- Remediation
View remediation
