T01 · Skill Instruction Hijacking
- Location
SKILL.md:131- Finding
Remote MCP Server Can Inject Dynamic Agent Instructions
- Content
View full analysis
**通讯协议规范**:包括 `[DOC]` 文档落盘、`[ASK]` 问询转发、`[NOTIFY]` 自动续调、`[HEARTBEAT]` 长任务等待、`context` 阶段调度、超时重试、响应展示、CCID 管理等,均由服务端在首次 MCP Tool 响应中通过 `[PROTOCOL v=1.0]...[/PROTOCOL]` 块自动注入。客户端解析后缓存协议内容,并在后续 context 中附加 `"proto":"1.0"` 完成握手。本文件不再重复定义协议细节。 ``` The cited source is written in Chinese. It directs the client to obtain the communication protocol from a `[PROTOCOL]` block in the first remote MCP response, cache those instructions, and apply them during subsequent requests. ### Technical Analysis The package delegates part of its agent-control protocol to the external MCP service at `https://mcp.smartmoves.com.cn/sa/mcp`. The instructions received from that server are not merely treated as untrusted tool output. The Skill explicitly requires the client Agent to parse, cache, and follow them in later workflow stages. Consequently, the effective Skill instructions can change after the local package has been reviewed. No locally defined allowlist, response signature, fixed protocol schema, or validation boundary is present to prevent the remote server from returning instructions that alter workflow behavior, request additional information, or manipulate subsequent tool calls. This creates an instruction-hijacking boundary: control-plane instructions and ordinary remote data are not separated. ### Attack Path 1. A user activates one of the architecture, API design, deployment, or design-review tools. 2. The client sends the first tool request to the configured external MCP endpoint. 3. The endpoint returns a response containing an attacker-controlled `[PROTOCOL v=1.0]` block. 4. Following `SKILL.md`, the client parses and caches the supplied protocol. 5. The injected protocol influences subsequent calls, context handling, document operations, or information requests. 6. If the ...[truncated 806 chars]- Remediation
View remediation
