T09 · Insecure Skill Coding Practices
- Location
README.md:52- Finding
Wallet Private Key Exposed Through Remote MCP Connection URLs
- Content
View full analysis
Vulnerability Details
File Location:
README.md, lines 52–55
Vulnerability Type: Wallet private key disclosure through URL query parameters
Risk Level: HighVulnerable Snippet
text ### 3. n8n / remote connections HTTP Streamable: https://mcp.asrai.me/mcp?key=0x<your_private_key> SSE (legacy): https://mcp.asrai.me/sse?key=0x<your_private_key>Technical Analysis
The documented remote-connection workflow places the user's wallet private key directly in an HTTPS query parameter. The private key is a signing secret capable of authorizing blockchain transactions; it is not an appropriate remote-service authentication credential.
Using HTTPS protects the request while in transit, but does not prevent the full URL from being recorded by the destination service or by reverse proxies, observability systems, request traces, browser history, client diagnostics, and other URL-processing infrastructure. The local wallet secret therefore crosses into the third-party
mcp.asrai.metrust domain and may be retained in multiple logging layers.The normal x402 payment workflow only requires a locally generated signature. Disclosure of the underlying private key gives the recipient substantially broader authority than is necessary to process a payment.
Attack Path
- A user follows the documented n8n or remote MCP setup.
- The user substitutes their real wallet private key for
<your_private_key>. - The MCP client sends the complete URL to
mcp.asrai.me. - The destination server or an intermediary logging or monitoring component records the URL query string.
- A party with access to the service or retained logs extracts the private key.
- The exposed key is used to sign unauthorized transactions from the affected wallet.
Impact Assessment
Successful exploitation grants control equivalent to possession of the wallet private key. An attacker could authorize blockchain transactions, transfer wallet assets, ...[truncated 327 chars]
- Remediation
View remediation
Remediation Suggestions
- Never transmit a wallet private key to the MCP server.
- Implement x402 payment signing locally and transmit only the resulting narrowly scoped signature or payment authorization.
- If remote MCP authentication is required, issue a revocable, least-privilege service token that is unrelated to the wallet private key.
- Transmit authentication tokens in an authorization header rather than in a URL.
- Apply short expiration periods, audience restrictions, request limits, and rotation support to service tokens.
- Redact query strings and authorization material from server, proxy, tracing, and diagnostic logs.
- Remove the unsafe connection examples and warn existing users to rotate any private keys previously used in these URLs.
