Back to skill

Security audit

AgentCanary

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed API guide for market intelligence, with no local execution, but users should handle its API key carefully because examples put the key in URLs.

Install only if you are comfortable using AgentCanary's external API for market data. Treat the AgentCanary API key as a secret, avoid pasting funded keys into prompts or visible URLs when possible, monitor usage, and rotate the key if it may have appeared in logs or transcripts.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:40
Finding
API Credential Exposed Through URL Query Parameters## Vulnerability Details **File Location**: `SKILL.md`, lines 40–43 **Vulnerability Type**: API credential exposure through insecure request construction **Risk Level**: Medium ### Vulnerable Code ```text 1. POST /api/keys/create { walletAddress: "0x..." } → returns apiKey 2. Send USDC/USDT to the receiving address shown at agentcanary.ai (Base, Ethereum, Arbitrum, Optimism, Polygon) 3. POST /api/billing/check { apiKey: "..." } → auto-detects payment, credits account 4. Use endpoints: GET /api/data/realtime-prices?apikey=YOUR_KEY ``` ### Technical Analysis The documented usage pattern places the API key in the query string of a GET request. TLS protects the request while in transit, but it does not prevent the complete URL from being captured by HTTP client diagnostics, reverse-proxy and access logs, observability platforms, browser history, screenshots, or error reports. This practice also undermines the Skill's claim that API keys do not pass through the LLM context. An agent following the example may interpolate the credential into a URL within its generated tool arguments or conversation context, making the secret visible to model infrastructure and tool-call logging. The network communication itself is necessary for the declared API-only market-intelligence functionality. The security issue is the credential transport mechanism, not the use of the AgentCanary API. ### Attack Path 1. A user creates and funds a wallet-linked AgentCanary API key. 2. An agent follows the documented example and inserts the key into the `apikey` query parameter. 3. A client, proxy, monitoring service, tool-call trace, or access log records the complete request URL. 4. An attacker or unauthorized operator with access to that record extracts the API key. 5. The attacker submits requests under the victim's account until the key is revoked, its credits are depleted, or server-side limits intervene. ### Impact Assessment A dis ...[truncated 530 chars]
Remediation
## Remediation Suggestions 1. Replace query-string authentication with an HTTP authorization header, such as: ```http Authorization: Bearer <API_KEY> ``` A dedicated secret header is also acceptable if bearer authentication cannot be supported. 2. Update all documentation and endpoint examples to prohibit credentials in URLs. 3. Inject the API key directly from a protected secret store into the HTTP header so the model does not need to read, reproduce, or interpolate it. 4. Configure HTTP clients, proxies, tracing systems, and error handlers to redact authorization headers and known credential fields. 5. Avoid including keys in prompt text, tool arguments visible to the model, telemetry, exception messages, or application logs. 6. Support immediate key revocation and rotation. Consider scoped credentials, usage alerts, and conservative rate or spending limits to reduce the impact of disclosure. 7. Treat previously used query-string keys as potentially logged and rotate them after migrating to header-based authentication.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (3)

External Transmission

Medium
Category
Data Exfiltration
Content
Cross-asset market intelligence for AI agents. 130+ endpoints. Not raw data — intelligence.

**Base URL:** `https://api.agentcanary.ai/api`
**Auth:** Wallet-based API keys. Create key → deposit USDC/USDT on any supported EVM chain → use key as query param.
**Briefs:** 4× daily auto-generated intelligence — Radar (03:15), Signal (09:15), Pulse (15:15), Wrap (21:15 UTC).
**Telegram:** [@AgentCanary](https://t.me/AgentCanary) — live briefs.
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
Cross-asset market intelligence for AI agents. 130+ endpoints. Not raw data — intelligence.

**Base URL:** `https://api.agentcanary.ai/api`
**Auth:** Wallet-based API keys. Create key → deposit USDC/USDT on any supported EVM chain → use key as query param.
**Briefs:** 4× daily auto-generated intelligence — Radar (03:15), Signal (09:15), Pulse (15:15), Wrap (21:15 UTC).
**Telegram:** [@AgentCanary](https://t.me/AgentCanary) — live briefs.
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
Cross-asset market intelligence for AI agents. 130+ endpoints. Not raw data — intelligence.

**Base URL:** `https://api.agentcanary.ai/api`
**Auth:** Wallet-based API keys. Create key → deposit USDC/USDT on any supported EVM chain → use key as query param.
**Briefs:** 4× daily auto-generated intelligence — Radar (03:15), Signal (09:15), Pulse (15:15), Wrap (21:15 UTC).
**Telegram:** [@AgentCanary](https://t.me/AgentCanary) — live briefs.
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Static analysis

No suspicious patterns detected.