Back to skill

Security audit

Gate Exchange Alpha

Security checks for vulnerabilities and agentic risk

Overview

This appears to be a legitimate Gate Alpha trading assistant, but it needs review because it handles real account data and trades while relying on mutable or unpinned external instructions and installers.

Install only if you intentionally want an agent to access Gate Alpha account data and help place trades. Use the least-privilege credentials possible, prefer read-only access for market or history tasks, verify installer provenance manually, and require a fresh quote plus explicit confirmation before any buy, sell, or sell-all action.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:14
Finding
Mutable Remote Instructions Are Assigned Highest Priority## Vulnerability Details **File Location**: `SKILL.md`, lines 14–17 **Vulnerability Type**: Remote instruction override through a mutable external document **Risk Level**: Critical ```markdown ⚠️ 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. ``` ### Technical Analysis The Skill requires the Agent to retrieve instructions from an external GitHub URL and explicitly declares those instructions to have the “highest priority.” The URL references the mutable `master` branch rather than an immutable commit. Consequently, the effective Skill instructions can change after the local package has been reviewed. This creates an instruction-hijacking boundary: anyone able to modify the referenced repository content, compromise the repository, or influence remote content delivery could alter the Agent's behavior without changing the audited artifact. The priority statement compounds the issue by attempting to elevate unaudited external content over the Skill's local controls. Although no malicious remote payload was established during this static audit, the local instruction itself creates a confirmed mechanism through which mutable external text can control the current Agent session. ### Attack Path 1. A user invokes the Skill for an Alpha market or trading operation. 2. The Agent loads `SKILL.md`. 3. Lines 14–16 require the Agent to retrieve the remote runtime-rules document from the mutable `master` branch. 4. An attacker with control over the remote repository, its publishing process, or content delivery modifies that document. 5. The modified d ...[truncated 977 chars]
Remediation
## Remediation Suggestions 1. Vendor the complete runtime rules into the Skill package so they are reviewed together with the rest of the artifact. 2. If external retrieval is unavoidable, reference an immutable commit rather than `master`. 3. Publish and verify a cryptographic digest or signature for the external document before processing it. 4. Remove the statement that remote instructions have the “highest priority.” 5. Explicitly state that all Skill and remote instructions remain subordinate to platform, system, developer, user-authorization, and transaction-safety constraints. 6. Fail closed if the pinned content cannot be retrieved or its integrity cannot be verified. 7. Prevent external runtime rules from changing the approved MCP tool allowlist or bypassing quote, confirmation, and order-verification controls.

T08 · Insecure Dependencies

Warning
Location
SKILL.md:51
Finding
Unpinned External Installer Skills Create a Supply-Chain Boundary## Vulnerability Details **File Location**: `SKILL.md`, lines 51–57 **Vulnerability Type**: Unversioned and unaudited installer dependencies **Risk Level**: Medium ```markdown ### Installation Check - Required: Gate (main) - Install: Run installer skill for your IDE - Cursor: `gate-mcp-cursor-installer` - Codex: `gate-mcp-codex-installer` - Claude: `gate-mcp-claude-installer` - OpenClaw: `gate-mcp-openclaw-installer` ``` ### Technical Analysis The Skill directs users or Agents to run external installer Skills identified only by name. It provides no immutable version, source URL, package digest, signature, or expected publisher identity. The installer implementations are not included in the audited project. Name-only dependency resolution is vulnerable to registry compromise, dependency confusion, namespace takeover, or later replacement of a previously legitimate installer. This risk is especially significant because the resulting MCP integration may process authenticated account data and submit Alpha orders. The audit did not establish that any named installer is currently malicious. The confirmed weakness is the absence of verifiable provenance and immutable dependency pinning at a security-sensitive installation boundary. ### Attack Path 1. The required Gate MCP server is unavailable in the user's environment. 2. The Skill directs the user or Agent to invoke an installer solely by its unversioned name. 3. A registry, marketplace, repository, or name-resolution mechanism returns a compromised or attacker-controlled installer with that name. 4. The installer deploys a modified MCP server or configuration while presenting itself as the legitimate Gate integration. 5. The spoofed component observes authenticated requests, captures credentials made available to it, falsifies quotes or responses, or redirects trading operations. 6. Subsequent calls from the Skill are sent to the compromised integration. ...[truncated 705 chars]
Remediation
## Remediation Suggestions 1. Specify an authoritative source and verified publisher for every installer Skill. 2. Pin each installer to an immutable, reviewed version or commit. 3. Publish and validate cryptographic checksums or signatures before installation. 4. Require explicit user approval before running an installer or changing MCP configuration. 5. Verify the installed MCP server's identity, exposed tool schema, and endpoint allowlist before providing credentials. 6. Use least-privilege API keys. Prefer read-only credentials unless the user explicitly requires trading functionality. 7. Keep trading credentials separate from installation and validation steps. 8. Document a trusted manual installation method and fail closed when provenance verification is unavailable.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (16)

Ae1

High
Category
analysis-evasion
Content
- `SKILL.md` keeps module dispatch and business boundaries.
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Description-Behavior Mismatch

Medium
Confidence
91% confidence
Finding
The README expands the skill from Alpha token browsing/trading into broader account management, portfolio valuation, transaction history, and order management, which exceeds the narrower user-facing description. This creates scope ambiguity that can cause the agent to invoke authenticated actions or data access beyond what a user would reasonably expect from the manifest metadata.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The README describes trading, holdings, and transaction-history features without prominent warnings that the skill can access account data and facilitate financial actions. In a brokerage-like context, missing disclosure undermines informed consent and increases the chance users trigger sensitive read/write operations without understanding the consequences.

Description-Behavior Mismatch

Medium
Confidence
89% confidence
Finding
Documenting account-book and transaction-history access under an Alpha token skill broadens the effective capability from market interaction to sensitive financial record retrieval. Even without code execution, this mismatch increases the risk of over-collection or unexpected access to private account data when the skill is selected.

Description-Behavior Mismatch

Medium
Confidence
90% confidence
Finding
The README advertises authenticated tools for balances, order placement, order history, and account-book queries that go beyond a narrowly described token-market browsing skill. In a financial context, undocumented authenticated capabilities are especially risky because they enable access to sensitive account data and potentially irreversible trades under an unexpectedly broad trust boundary.

Vague Triggers

Medium
Confidence
96% confidence
Finding
Broad trigger phrases such as generic buy/sell terms in English and Chinese can cause accidental skill activation from ordinary conversation. Because this skill includes financial trading and account access, unintended routing is more dangerous than in low-risk domains and could lead to unnecessary exposure of balances or progression toward trades.

Unrestricted Tool Access

Medium
Category
Excessive Agency
Content
## 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.
Confidence
80% confidence
Finding
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.

Missing User Warnings

Medium
Confidence
85% confidence
Finding
The skill instructs the agent to retrieve and display detailed Alpha account transaction history, including timestamps, token symbols, balance changes, and resulting balances, but provides no user-facing warning or confirmation step about exposing sensitive financial data. In a trading/account context, this increases the risk of unintended disclosure to someone with access to the session, screen, logs, or shared chat history.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
This markdown file describes showing all tokens held in the user's Alpha account, including balances, chain, and contract address, but provides no warning that the output may reveal sensitive financial information. Under the markdown criteria for missing user warnings, skills that affect user privacy should disclose that behavior.

Missing User Warnings

Medium
Confidence
86% confidence
Finding
The description directs the skill to query all holdings and compute total portfolio value, which involves processing sensitive financial account data. The markdown does not include any privacy or data-handling warning for this behavior.

Description-Behavior Mismatch

Medium
Confidence
94% confidence
Finding
The file expands from token-specific Alpha trading into a workflow that includes 'batch sell all holdings,' which materially broadens the action scope from what the skill metadata suggests. In a trading skill, undocumented or under-disclosed account-wide liquidation behavior increases the chance that a user or downstream agent triggers destructive transactions beyond the user’s apparent intent.

Description-Behavior Mismatch

Medium
Confidence
96% confidence
Finding
Scenario 14 introduces full-account liquidation logic, allowing sequential sale of every available Alpha holding after confirmation. Even though the scenario includes confirmations, this is still dangerous because it gives the skill a far broader transactional capability than its stated purpose implies, creating a mismatch that can lead to excessive, irreversible financial actions if the skill is invoked under narrower user expectations.

Natural-Language Policy Violations

Low
Confidence
78% confidence
Finding
The README presents both English and Chinese invocation examples and trigger phrases, but it does not explain whether the skill is bilingual by design, how language is selected, or whether a user can choose their preferred language. This can create ambiguity around language/locale behavior and may conflict with organizational expectations for explicit language handling.

Vague Triggers

Low
Confidence
88% confidence
Finding
This markdown file includes example prompts like "How's the Alpha market doing?" and especially "What's the market like right now?" without clarifying boundaries or exclusions. Those phrases are fairly broad and could match casual discussion rather than an explicit request to invoke this skill.

Natural-Language Policy Violations

Low
Confidence
79% confidence
Finding
The file includes multiple Chinese prompt examples alongside English ones, but nowhere states that the skill supports multiple languages or lets the user choose a preferred language/locale. This can create an implicit language expectation without explicit opt-in, which falls under locale/language policy concerns.

Natural-Language Policy Violations

Low
Confidence
77% confidence
Finding
The file includes mixed Chinese and English prompt examples and implicitly steers usage toward those languages, but it does not explicitly state that users may interact in their preferred language or that the skill is limited to a particular locale. Under the policy rule, language constraints should be opt-in or clearly justified.

Static analysis

No suspicious patterns detected.