T01 · Skill Instruction Hijacking
- Location
SKILL.md:12- Finding
Mutable External Instructions Are Assigned Highest Priority
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a real Gate TradFi query-and-trading integration, but it needs Review because the README says it is read-only while the actual skill can place, amend, cancel, modify, and close trades with write permissions.
Review this carefully before installing. Treat it as a write-enabled Gate TradFi trading skill, not a read-only query helper. Only use it with credentials whose trading permissions you intentionally want to grant, verify every confirmation prompt before approving an order or position change, and prefer a separate read-only key if you only need account or market queries. The publisher should update the README and bundle or pin the shared runtime rules before this is considered low-risk.
SKILL.md:12Mutable External Instructions Are Assigned Highest Priority
README.md:1README Misrepresents a Write-Enabled Trading Skill as Read-Only
Referenced artifact was not completely inspected
- `SKILL.md` keeps routing and domain constraints.
Skill grants unrestricted tool access without appropriate constraints. An agent with unfettered tool access can perform arbitrary actions including file modification, network requests, and code execution.
## General Rules
⚠️ STOP — You MUST read and strictly follow the shared runtime rules before proceeding.
Do NOT select or call any tool until all rules are read. These rules have the highest priority.
→ Read [gate-runtime-rules.md](https://github.com/gate/gate-skills/blob/master/skills/gate-runtime-rules.md)
- **Only call MCP tools explicitly listed in this skill.** Tools not documented here must NOT be called, even if they
exist in the MCP server.
The trigger list includes very broad verbs such as 'buy', 'sell', 'cancel', and 'close', which can cause this trading skill to activate for unrelated user requests. In a financial trading context, incorrect routing is risky because it can expose account data or steer the session toward trade execution flows when the user did not intend to interact with TradFi at all.
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
### 2. Read sub-module and call tools
- Load the corresponding reference under `references/` and follow its Workflow.
- **Query**: Call query tools with extracted/prompted parameters; no confirmation needed.
- **Trading**: Build the parameter set per the reference and MCP; **output parameters for user confirmation**; only after user confirms, call the trading MCP tool; then **in the response, explain the parameters used and the outcome**.
### 3. Report
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
## Error Handling
| Situation | Action |
| -------------------------- | ------------------------------------------------------------------------------------------------------- |
| Tool not found / 4xx/5xx | Tell user the TradFi service or tool may be unavailable; suggest retry or check Gate MCP configuration. |
| Empty list | Report "No open orders" / "No positions" / "No symbols" etc., and do not assume error. |
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
## Safety Rules
- **Query**: No confirmation required; display data after tool success.
- **Trading**: **Always** output parameters for user confirmation before calling place/amend/cancel/modify/close; **never** execute a write operation without explicit user confirmation. After execution, **always** explain in the response the parameters that were used and the outcome.
- **Sensitive data**: Do not log or store credentials or balances; display only in the current response.
The trigger examples include short, generic phrases such as 'Change take-profit to 1.08' that may match user utterances without clearly anchoring to a specific existing TradFi position. In a trading skill, overly broad activation can cause the agent to enter a position-modification workflow in response to ambiguous conversational text, increasing the chance of unintended trade-related actions or confusing prompts for confirmation.
The stop-loss examples are especially ambiguous because phrases like 'Modify position stop-loss 1.03' or 'Change stop-loss to 1.03' omit a clear asset or account context. In a financial trading environment, this can misroute ordinary discussion into a live order-modification flow, potentially leading to changes on the wrong position if the system attempts to resolve context from prior state.
The example triggers "Balance" and "How much do I have" are overly broad and can match many unrelated user intents, causing the TradFi skill to activate outside its intended scope. In a financial context, this misrouting can expose account balances or MT5 data when the user meant something non-financial, creating an avoidable privacy and data-minimization risk.
Skill allows unbounded resource consumption (API calls, storage, compute). Without rate limits or quotas, a compromised or misbehaving agent can cause denial-of-service or cost overruns.
1. Call `cex_tradfi_query_user_assets`.
2. Format as assets table (asset, available, locked, total).
3. If error or empty, reply "Unable to load assets" and do not retry indefinitely.
4. Do not expose API keys or secrets; only display balance data returned by the tool.
---
This markdown file states "All content in English," which is a natural-language locale constraint. Under the policy, forcing a specific language without offering the user a choice or documenting a justified regional need is a violation.
The example prompts include generic phrases such as "Order history," "My positions," and "Balance," which are broad enough to overlap with ordinary conversation or requests in other financial contexts. The README does not provide exclusion conditions or clear constraints describing when these phrases should or should not invoke this specific skill.
The trigger example "My TradFi balance" is too generic for a workflow that is supposed to handle a specific-asset query. This can cause the agent to select the one-asset scenario when the user actually wants a full balance overview, leading to incorrect tool usage or incomplete financial disclosure handling.
No suspicious patterns detected.