Back to skill

Security audit

hyperbot-quote-mcp

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent read-only Hyperbot crypto analytics connector, but it deserves review because it sends wallet/trading queries to external services and recommends unpinned npm bridge installs.

Install only if you are comfortable sending wallet addresses, coin interests, and trading-analysis queries to the listed external services. Prefer pinned, reviewed MCP bridge dependencies in an isolated environment, avoid global unpinned npm installs, and never provide seed phrases, private keys, exchange credentials, or authorization tokens to this skill.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:61
Finding
Unpinned Third-Party Packages Are Automatically Executed or Globally Installed## Vulnerability Details **File Location**: `SKILL.md`, lines 61–70, 86–91, and 136 **Vulnerability Type**: Supply-chain exposure through unpinned npm packages **Risk Level**: Medium ### Vulnerable Code ```json { "mcpServers": { "hyperbot-quote-mcp": { "command": "npx", "args": ["-y", "mcp-remote", "https://mcp.hyperbot.network/mcp/sse"] } } } ``` ```markdown > **Recommended:** OpenClaw works best with `mcporter` for connecting to remote SSE servers. **Prerequisite:** Install mcporter ```bash npm install -g mcporter ``` ``` ```markdown | "mcp-remote not found" | Run `npm install -g mcp-remote` | ``` ### Technical Analysis The Skill instructs users to run `mcp-remote` through `npx -y` without pinning an exact version. This permits npm to resolve, download, and execute the package version currently selected by the registry. The `-y` option suppresses the normal installation confirmation. The alternative setup and troubleshooting instructions similarly install `mcporter` and `mcp-remote` globally without version constraints, lockfiles, or integrity hashes. Because these packages are not included in the audited project, their installation scripts, transitive dependencies, and runtime behavior cannot be verified from this artifact. The remote MCP connection itself is consistent with the Skill's declared functionality. The security issue is specifically the mutable and automatically executable dependency resolution mechanism. ### Attack Path 1. An attacker compromises the npm account, release process, package registry entry, or a transitive dependency associated with `mcp-remote` or `mcporter`. 2. The attacker publishes a malicious version that contains harmful lifecycle or runtime code. 3. A user follows the documented setup instructions, or the MCP client launches the configured `npx -y mcp-remote` command. 4. npm resolves the unpinned package to the attacker-controlled release and downloads it. 5. The package's installation or ru ...[truncated 953 chars]
Remediation
## Remediation Suggestions 1. Pin each package to an exact, reviewed version, for example: ```json { "command": "npx", "args": [ "--no-install", "mcp-remote", "https://mcp.hyperbot.network/mcp/sse" ] } ``` Install the exact version separately through a project-local dependency declaration: ```bash npm install --save-exact mcp-remote@<reviewed-version> ``` 2. Commit and verify a lockfile so package versions and transitive dependencies are reproducible. 3. Use npm integrity verification, trusted registries, and dependency provenance controls where available. 4. Remove `-y` from `npx` workflows and avoid permitting `npx` to download packages automatically at runtime. 5. Prefer project-local dependencies over global installations. Replace `npm install -g mcporter` and `npm install -g mcp-remote` with exact, locally pinned dependencies. 6. Review package source code, lifecycle scripts, maintainer history, and transitive dependencies before approving a version. 7. Run the MCP bridge with least privilege in an isolated environment that cannot access unrelated credentials or sensitive files. 8. Document the expected package publisher, exact version, checksum or integrity value, and a controlled upgrade process.
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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (7)

Vague Triggers

Medium
Confidence
92% confidence
Finding
The manifest trigger list includes generic phrases such as "smart money analysis," "trader statistics," and especially "market data," which could match many ordinary user requests outside this specific Hyperbot skill context. The description does not provide exclusion conditions or narrow activation scope, increasing the chance of unintended invocation.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The skill instructs users to connect to a remote MCP service and send wallet addresses, trading queries, and potentially behavioral analytics data to Hyperbot, but it does not clearly warn about that data disclosure. In a finance context, wallet addresses and query history can be sensitive because they enable profiling of user interests, holdings, and trading behavior by a third party.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
- Call multiple related tools together for comprehensive analysis

**MUST NOT DO:**
- Do NOT call `get_current_position_history` without checking if the address has an active position (will return 400 error)
- Do NOT exceed 50 addresses in batch queries (`get_traders_accounts`, `get_traders_statistics`)
- Do NOT make more than 100 requests per minute (rate limit)
- Do NOT guess coin symbols - use `get_tickers` to get valid symbols if unsure
Confidence
75% confidence
Finding
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.

External Transmission

Medium
Category
Data Exfiltration
Content
**MCP Tool Call Example:**
```bash
curl 'https://mcp.hyperbot.network/mcp/message?sessionId=sessionId obtained via sse' \
  -H 'content-type: application/json' \
  --data-raw '{"method":"tools/call","params":{"name":"fetch_leader_board","arguments":{"period":"7d","sort":"pnl"}},"jsonrpc":"2.0","id":1}'
```
Confidence
95% confidence
Finding
The skill repeatedly demonstrates transmitting structured requests to an external endpoint, including session identifiers and potentially sensitive wallet-related arguments. While external transmission is expected for a remote MCP integration, it is still security-relevant because the skill normalizes sending user-supplied financial identifiers and analytics requests to a third-party service without prominent trust, privacy, or data-handling constraints.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The documented tools explicitly accept wallet addresses and retrieve trading history and statistics, but the reference does not warn users that invoking them may disclose wallet-linked behavioral data to external services. In a cryptocurrency analytics skill, wallet addresses are often treated as sensitive because they can be correlated with identities, holdings, and strategies, so omission of a disclosure can lead to unintended privacy exposure.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The resources section lists external API endpoints for market, whale, and trader data without warning that use of these capabilities causes outbound requests to third-party services. Even if the transmitted data is limited, users and integrators may unknowingly expose query contents, usage patterns, IP-associated metadata, or wallet-related parameters to external providers.

Vague Triggers

Low
Confidence
80% confidence
Finding
The text says users can install "using natural language" and suggests searching online depending on the user's agent, but it does not define what specific requests should count as installation intent. This broad wording can blur the boundary between ordinary conversation and explicit setup requests.

Static analysis

No suspicious patterns detected.