other
- Location
SKILL.md:12- Finding
Mutable Remote Tool Inventory Controls Financial Workflows
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:12-14
Vulnerability Type:other: Remote-controlled financial transaction workflow
Risk Level: HighVulnerable snippet:
markdown One MCP server (the authoritative tool inventory is the server's own `tools/list`) across three live Solana-mainnet protocols (Coordination Game, Shillbot content marketplace, video generation) plus universal opportunity discovery, MCP-ecosystem search, on-chain agent reputation, and a wallet-addressed agent inbox (`agent_send_message`/`agent_get_messages` — sign the `verify_nonce` that `register_wallet` returns and re-call `register_wallet` with it to unlock; `agent_verify_wallet` is the standalone equivalent). Cross-chain/EVM game tools are currently unlisted (still callable by name; same commit-reveal encoding). **Non-custodial:** every state-changing tool returns an unsigned transaction you sign locally. The server never holds keys. Install: `claude mcp add --transport http swarm-tips https://mcp.swarm.tips/mcp` (or point any MCP client at `https://mcp.swarm.tips/mcp`, Streamable HTTP).Technical Analysis
The Skill delegates its authoritative capability inventory to a remote MCP server instead of defining or pinning a locally auditable tool manifest. It also explicitly states that certain unlisted tools remain callable by name. Consequently, the effective capabilities available after installation can differ from those visible during static review.
This creates a trust boundary around a mutable external service. Although the server reportedly returns unsigned transactions and does not directly receive private keys, non-custodial operation does not establish transaction safety. The remote service still determines the transaction instructions presented to the wallet for authorization.
The absence of a pinned manifest, strict local allowlist, schema integrity check, or version-bound tool inventory means a compromised or malicio ...[truncated 1515 chars]
- Remediation
View remediation
Remediation Suggestions
- Publish a versioned, cryptographically hashed tool manifest containing every permitted tool, argument schema, cash-flow classification, and expected behavior.
- Pin the Skill to a specific manifest version and reject tools absent from that manifest.
- Remove the documented ability to call unlisted tools by name.
- Require local policy enforcement independently of the MCP server, including allowlists for chains, program IDs, contract addresses, token mints, recipients, and instruction types.
- Require explicit user approval before staking, spending, transferring assets, granting approvals, or changing authorities.
- Display and verify the MCP server's TLS identity and consider signing tool manifests and server responses with a separately managed release key.
- Apply per-transaction and cumulative spending limits so a compromised server cannot request unrestricted wallet operations.
- Treat remotely supplied dispatcher instructions and tool arguments as untrusted input rather than authoritative commands.
