T01 · Skill Instruction Hijacking
- Location
SKILL.md:12- Finding
Unauthenticated remote update response can inject instructions into the agent session
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is for Weiyun cloud-file management, but it gives agents unsafe update, credential, upload, and setup-script authority that users should review before installing.
Install only if you trust the Weiyun publisher and are comfortable giving the agent access to manage cloud files. Before use, avoid putting tokens on command lines, verify any setup script path yourself, do not follow remote update instructions automatically, and only upload, delete, or share files after explicit confirmation of the exact targets and destination.
SKILL.md:12Unauthenticated remote update response can inject instructions into the agent session
scripts/upload_to_weiyun.py:406Caller-controlled MCP endpoint receives the authentication token and complete file contents
references/auth.md:5Authentication workflow executes missing relative setup scripts from the current working directory
SKILL.md:383Documentation encourages passing the MCP token through command-line arguments and the script emits token fragments
The script allows the MCP endpoint to be supplied from an environment variable or CLI argument and then sends the MCP token in the WyHeader to that URL without validation. If an attacker can influence WEIYUN_MCP_URL or the provided --mcp_url, they can redirect uploads and credentials to an attacker-controlled server, causing token exfiltration and unauthorized file disclosure.
"method": "tools/call",
"params": {"name": tool_name, "arguments": arguments},
}
resp = requests.post(mcp_url, headers=headers, json=payload, timeout=120)
resp.raise_for_status()
result = resp.json()
content = result.get("result", {}).get("content", [])
There is a clear description-behavior mismatch. The declared purpose describes a full-featured Weiyun/MCP integration with many concrete tools and upload-related logic. The actual code chunk is only a minimal placeholder comment for an encoding fix module and provides none of the described functionality. This is not a case of partial implementation detail; the primary purpose is materially different and the advertised capabilities are unsupported by the provided code.
The skill declares no explicit tool scope or permissions boundaries, yet its instructions direct the agent to use network access, shell commands, Python execution, and environment variables. This weakens least-privilege guarantees and increases the chance that an agent will perform sensitive local or outbound actions beyond what a user expects from a documentation-oriented skill.
The skill repeatedly instructs callers to include reporting data in req_header but does not present a clear privacy warning or consent flow to the user. Silent telemetry collection is dangerous because users may not realize that environment metadata is being sent to a third party whenever they use ordinary file-management functions.
The skill requires use of real Weiyun cookies together with MCP tokens, but it does not provide strong warnings or controls for handling these credentials safely. Combining session cookies and tokens raises the risk of credential leakage through logs, shell history, copied commands, or agent memory, which could enable unauthorized access to a user's cloud files.
The skill instructs agents to execute local shell/Python commands and consume environment variables to perform uploads and related operations. That expands the trust boundary from MCP guidance into arbitrary local execution, creating risk of command misuse, accidental execution in the wrong environment, exposure of secrets in env vars, and unauthorized file access on the host.
The skill mandates collection and transmission of host OS details and client version telemetry in req_header for every request. Even if intended for troubleshooting, this collects device-identifying information beyond the core file-management task and can expose user environment metadata without necessity or informed consent.
The manual fallback instructs the operator to persist a raw micro-cloud access token into local mcporter configuration via command line, but it does not clearly warn that this stores a reusable credential on disk. That creates a realistic risk of unintended credential exposure through shell history, local config leakage, backups, multi-user machines, or support log sharing, especially because the token appears sufficient to access the user's Weiyun MCP endpoint.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
查询微云网盘的目录内容,支持按目录查看文件和子目录,支持分页和排序。
### 请求(McpListReq)
| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
查询微云网盘的目录内容,支持按目录查看文件和子目录,支持分页和排序。
### 请求(McpListReq)
| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
查询微云网盘的目录内容,支持按目录查看文件和子目录,支持分页和排序。
### 请求(McpListReq)
| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
查询微云网盘的目录内容,支持按目录查看文件和子目录,支持分页和排序。
### 请求(McpListReq)
| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
The document states that real Weiyun cookies such as uid and uid_key are required, but does not include handling guidance for these credentials. That is risky because an agent or integrator may log, echo, persist, or mishandle live session secrets, enabling account access if exposed.
The document exposes a destructive deletion capability, including permanent deletion, but does not state that agents must obtain explicit user confirmation before invoking it. In an agent-skill context, that omission is dangerous because a model may treat deletion as a routine file-management step and irreversibly remove user data without a clear consent checkpoint.
The share-link tool allows creation of public or passwordless links, but the documentation does not warn that this may expose private files to anyone with the URL. In a skill used by an autonomous or semi-autonomous agent, the lack of privacy guidance increases the chance that sensitive user content is shared externally without informed consent.
The document instructs the agent/client to upload file contents, hashes, and metadata to a remote service, but it does not include any user-facing warning, consent step, or privacy notice. In an agent skill context, this increases the risk of unintended exfiltration of sensitive local data because the instructions normalize transmission without requiring confirmation or clarifying what leaves the user environment.
The usage examples explicitly recommend passing the MCP token on the command line, which commonly exposes secrets through shell history, process listings, audit logs, and terminal recordings. This is especially risky for a cloud storage token because it may grant file access or destructive operations if later recovered by another local user or monitoring system.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"method": "tools/call",
"params": {"name": tool_name, "arguments": arguments},
}
resp = requests.post(mcp_url, headers=headers, json=payload, timeout=120)
resp.raise_for_status()
result = resp.json()
content = result.get("result", {}).get("content", [])
A language-policy issue can arise when a skill effectively forces one language without user opt-in. This file's headings, instructions, and usage guidance are entirely in Chinese, and there is no indication that the skill is region-specific or that users may choose another language.
No suspicious patterns detected.