Back to skill

Security audit

Gate Exchange LaunchPool Skill

Security checks for vulnerabilities and agentic risk

Overview

This looks like a legitimate Gate LaunchPool skill, but it needs review because it relies on mutable remote rules while handling authenticated staking and redemption actions.

Review before installing. Only use this with a Gate API key whose permissions you are comfortable granting, verify every stake or redeem preview before confirming, and prefer a version where the shared runtime rules are bundled or pinned to an immutable commit rather than loaded from a mutable GitHub branch.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:12
Finding

Remote Mutable Instructions Declared as Highest Priority

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 12–15
Vulnerability Type: Skill instruction hijacking through externally hosted runtime rules
Risk Level: High

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

Technical Analysis

The skill directs the agent to retrieve and obey a remotely hosted Markdown file before selecting or invoking any tool. It further declares those external instructions to have “the highest priority.”

The referenced file is not included in the audited artifact and is linked through a mutable repository branch (master) rather than an immutable commit. Consequently, its effective instructions can change independently after this package has been reviewed. Treating remotely controlled content as authoritative instructions creates an unreviewed instruction channel capable of altering the agent’s goals, safety constraints, and tool behavior.

The issue is the combination of:

  1. Mandatory retrieval of instructions outside the audited package.
  2. A mutable branch-based URL with no integrity verification.
  3. Explicit language attempting to assign the remote content the highest instruction priority.
  4. A requirement to process those instructions before any tool selection.

This finding concerns remote instruction retrieval, not remote code execution: the audited package contains no mechanism that directly downloads and executes executable code.

Attack Path

  1. A user or runtime loads this skill for a LaunchPool request.
  2. The skill instructs the agent to access gate-runtime-rules.md from the remote master branch.
  3. An attacker who comp ...[truncated 1493 chars]
Remediation
View remediation

Remediation Suggestions

  1. Bundle the complete runtime rules inside the skill package as a locally auditable file.
  2. Remove the statement that external content has “the highest priority.” Explicitly state that all skill rules remain subordinate to system, developer, safety, and current user-authorization constraints.
  3. If remote documentation is unavoidable, pin the URL to an immutable commit hash rather than master.
  4. Verify remotely retrieved content against a trusted cryptographic digest or signature before use.
  5. Treat external documents as untrusted reference material, not executable agent instructions.
  6. Ensure the runtime enforces a hard allowlist of the five documented LaunchPool MCP tools independently of prompt text.
  7. Enforce stake and redemption confirmation gates in trusted application code or MCP policy, rather than relying solely on natural-language instructions.
  8. Require a new security review whenever the pinned runtime-rules version changes.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (5)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 57)May include surrounding context.

md
- `SKILL.md` keeps routing and product semantics.

Anti-Refusal Statement

High
Category
Anti-Refusal
Confidence
70% confidence
Finding

Skill instructs the agent to never refuse or to always comply. Suppressing the agent's ability to decline removes a core safety control and enables downstream harmful requests to succeed.

Content

Scanner excerpt · SKILL.md (reported line 148)May include surrounding context.

md
After each operation, output a short standardized result consistent with the reference (e.g. project list table, stake confirmation, redeem confirmation, pledge record list, reward record list). Use the exact response fields from the API (see references) so the user sees correct field names and values.

**Language adaptation**: Always respond in the same language as the user's input. The Response Templates in reference files define the **structure and fields** to display, not the literal output language. Translate all display labels to match the user's language.

**Do NOT translate** (keep as-is regardless of language):
- Product name: `LaunchPool`

Unrestricted Tool Access

Medium
Category
Excessive Agency
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.

Content

Scanner excerpt · SKILL.md (reported line 13)May include surrounding context.

md
## 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.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill contains contradictory instructions: earlier sections explicitly say pid and rid are internal and must not be shown, but Scenario 3 tells the agent to show rid. This can cause unnecessary disclosure of internal identifiers to end users and increases the chance those IDs are reused later in stake/redeem flows or exposed in logs, prompts, or screenshots.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The response guidance/template reintroduces an internal reward-pool ID into user-visible output despite earlier rules forbidding display of internal identifiers. Even if the identifier is not secret by itself, exposing internal object references violates data-minimization expectations and can enable unintended coupling between browse flows and transactional operations.

Content

No source excerpt is available for this finding.