T09 · Insecure Skill Coding Practices
- Location
references/overview.md:219- Finding
API Key Exposure Through URL Query Parameters and Command-Line Arguments
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This appears to be a legitimate GoldRush API reference skill, but it needs review because some examples could expose API keys or sensitive wallet information if followed exactly.
Review before installing. Use this skill only when you intend to query GoldRush/Covalent with the supplied wallet identifiers, and treat xPub/yPub/zPub values, approvals, portfolio, and transaction history as sensitive. Prefer the SDK or Authorization header with secrets kept in environment variables or a secret manager; do not place API keys in URLs, prompts, logs, screenshots, or reusable shell commands. For WebSocket or real-time streaming work, use a dedicated streaming skill instead of relying on the mixed guidance here.
references/overview.md:219API Key Exposure Through URL Query Parameters and Command-Line Arguments
Skill manipulates agent memory, state, or stored context. Memory corruption can alter personality, override safety rules, or cause unpredictable behavior.
false // Disable caching
);
// Clear memory and disk cache if needed
clearCache();
```
The skill is positioned as the default for a very broad set of blockchain-related lookups, which can cause over-selection in contexts where a narrower or more privacy-preserving tool would be more appropriate. This increases the chance that wallet addresses, transaction history, or portfolio data are sent to an external provider when the user did not clearly intend that specific integration.
This markdown file documents endpoints that retrieve wallet balances, transfers, and HD wallet data, including xPub/yPub/zPub inputs that can expose broad visibility into a user's addresses and holdings. The descriptions present these operations as routine API calls but do not warn users that submitting wallet identifiers may reveal sensitive financial activity and portfolio information to the service.
This markdown file describes endpoints that retrieve token approvals and cross-chain wallet activity for a supplied wallet address, which can reveal sensitive financial behavior and risk exposure. The documentation provides no user-facing warning about privacy implications or the sensitivity of querying third-party services with wallet addresses.
This markdown file documents endpoints that retrieve wallet-address transaction histories and optional detailed traces such as internal transfers, state changes, and input data. Although these are read-only API calls, the description does not warn users that querying and handling this data can expose sensitive financial activity and address associations.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# WRONG
http://api.covalenthq.com/v1/...
# CORRECT
https://api.covalenthq.com/v1/...
The manifest says this skill is for the GoldRush Foundational REST API and explicitly directs real-time streaming/WebSocket use to a different skill, goldrush-streaming-api. However, this file documents Streaming API GraphQL/WebSocket authentication behavior as part of the same skill reference, which conflicts with the stated routing and separation of responsibilities.
The document gives conflicting authentication guidance for the Foundational API: elsewhere it requires a Bearer token in the Authorization header, but this example uses curl basic-auth syntax (-u YOUR_API_KEY_HERE:). In an agent skill, contradictory auth instructions can cause failed requests, insecure credential handling patterns, or accidental propagation of API keys in the wrong channel.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
| Item | Value |
|------|-------|
| **Base URL** | `https://api.covalenthq.com/v1` |
| **Protocol** | HTTPS (REST) |
| **Authentication** | Bearer token in `Authorization` header |
| **API Key** | Sign up at goldrush.dev/platform (starts with `cqt_` or `ckey_`) |
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
| Item | Value |
|------|-------|
| **Base URL** | `https://api.covalenthq.com/v1` |
| **Protocol** | HTTPS (REST) |
| **Authentication** | Bearer token in `Authorization` header |
| **API Key** | Sign up at goldrush.dev/platform (starts with `cqt_` or `ckey_`) |
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
| Item | Value |
|------|-------|
| **Base URL** | `https://api.covalenthq.com/v1` |
| **Protocol** | HTTPS (REST) |
| **Authentication** | Bearer token in `Authorization` header |
| **API Key** | Sign up at goldrush.dev/platform (starts with `cqt_` or `ckey_`) |
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
| Item | Value |
|------|-------|
| **Base URL** | `https://api.covalenthq.com/v1` |
| **Protocol** | HTTPS (REST) |
| **Authentication** | Bearer token in `Authorization` header |
| **API Key** | Sign up at goldrush.dev/platform (starts with `cqt_` or `ckey_`) |
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
| Item | Value |
|------|-------|
| **Base URL** | `https://api.covalenthq.com/v1` |
| **Protocol** | HTTPS (REST) |
| **Authentication** | Bearer token in `Authorization` header |
| **API Key** | Sign up at goldrush.dev/platform (starts with `cqt_` or `ckey_`) |
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
| Item | Value |
|------|-------|
| **Base URL** | `https://api.covalenthq.com/v1` |
| **Protocol** | HTTPS (REST) |
| **Authentication** | Bearer token in `Authorization` header |
| **API Key** | Sign up at goldrush.dev/platform (starts with `cqt_` or `ckey_`) |
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
| Item | Value |
|------|-------|
| **Base URL** | `https://api.covalenthq.com/v1` |
| **Protocol** | HTTPS (REST) |
| **Authentication** | Bearer token in `Authorization` header |
| **API Key** | Sign up at goldrush.dev/platform (starts with `cqt_` or `ckey_`) |
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
| Item | Value |
|------|-------|
| **Base URL** | `https://api.covalenthq.com/v1` |
| **Protocol** | HTTPS (REST) |
| **Authentication** | Bearer token in `Authorization` header |
| **API Key** | Sign up at goldrush.dev/platform (starts with `cqt_` or `ckey_`) |
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
| Item | Value |
|------|-------|
| **Base URL** | `https://api.covalenthq.com/v1` |
| **Protocol** | HTTPS (REST) |
| **Authentication** | Bearer token in `Authorization` header |
| **API Key** | Sign up at goldrush.dev/platform (starts with `cqt_` or `ckey_`) |
The documentation explicitly recommends an authentication method that places the API key in the URL query string. Query parameters are commonly logged by browsers, proxies, load balancers, observability tools, shell history, and server access logs, which can expose the credential beyond the intended recipient. In this skill’s context, which teaches developers how to authenticate to a production blockchain data API, that guidance increases the chance of widespread insecure implementation.
Although the external transmission is to the legitimate API, this example embeds the API key directly in the request URL. URLs are prone to exposure through logs, analytics, browser history, reverse proxies, and monitoring systems, turning a normal outbound request into a credential-leak risk. In a developer-facing authentication guide, this is especially dangerous because users may copy the insecure pattern into production systems.
Include your API key as the key query parameter in the request URL.
curl -X GET "https://api.covalenthq.com/v1/eth-mainnet/address/demo.eth/balances_v2/?key=YOUR_API_KEY_HERE"
The manifest explicitly says this skill is for REST API access and that real-time streaming or WebSocket push data should use a different skill, goldrush-streaming-api. However, the documentation section 'Wallet Activity Stream' provides WebSocket connection and subscription troubleshooting, which directly contradicts the stated skill boundary and suggests this skill covers streaming behavior.
The description does not warn that wallet addresses, ENS names, approvals, holdings, and cross-chain activity may be transmitted to a third-party API and may reveal sensitive financial or behavioral information. In a skill specifically built for on-chain lookups, omission of this notice raises privacy and consent concerns rather than introducing direct code execution risk.
The document repeatedly shows API key usage patterns and sample credentials without an explicit warning against hardcoding, storing in prompts, or exposing them in logs. In an LLM-agent context, this omission increases the chance that downstream implementations embed secrets in code, transcripts, or tool calls where they can be leaked.
The manifest frames this skill as the default REST API for on-chain data lookups and says users needing real-time streaming or WebSocket push data should use a different skill. This file nevertheless includes concrete WebSocket client configuration and reconnection guidance, which goes beyond the described REST-only purpose.
Detected: suspicious.prompt_injection_instructions