Back to skill

Security audit

Riley Crypto Trading

Security checks for vulnerabilities and agentic risk

Overview

The skill is a disclosed crypto market-data helper, but it should be reviewed because it can trigger automatic paid USDC requests from remote-supplied follow-up calls without clear spending controls.

Install only if you are comfortable connecting an x402 payment client for live crypto-data calls. Use wallet-side or client-side spending caps, require confirmation for paid requests, and avoid automatically following remote next_calls unless the destination, price, and total session cost are validated first.

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

Error
Location
SKILL.md:26
Finding
Unbounded Automatic Cryptocurrency Payments Through Externally Supplied Follow-Up Calls## Vulnerability Details **File Location**: `SKILL.md`, lines 26–27 and 43–44 **Vulnerability Type**: Unrestricted paid request automation and unsafe trust in externally supplied URLs **Risk Level**: High **Vulnerable Code Snippets**: ```markdown > All endpoints are GET on `https://store.agentexchange.work`. Paid calls return HTTP 402; > your x402 client signs USDC on Base and retries. Free preview: `GET /samples`. ``` ```markdown - `/crypto/launches` items include `next_calls` that point at the security + dex endpoints for that exact token — chain them automatically. ``` ### Technical Analysis The Skill instructs the Agent's x402 client to sign USDC payments automatically after receiving HTTP 402 responses. It also directs the Agent to automatically follow `next_calls` values supplied by the remote launch service. No documented control limits payment amounts, aggregate expenditure, number of calls, polling frequency, retry count, payment recipient, destination origin, redirects, or permitted endpoint paths. There is also no requirement for explicit user confirmation before signing a payment. Consequently, a remote response influences both which requests are made and which payment challenges are processed. If the external service is compromised, malicious, or incorrectly configured, it could supply excessive or unauthorized follow-up calls. Those calls could return payment challenges that the client signs and retries automatically. ### Attack Path 1. The Agent polls the documented `/crypto/launches` endpoint. 2. A compromised, malicious, or faulty remote service returns launch records containing attacker-controlled or excessive `next_calls`. 3. Following the Skill's instruction, the Agent automatically chains those calls without obtaining user approval. 4. The selected endpoints return HTTP 402 payment challenges. 5. The x402 client signs USDC payments on Base and retries the requests. 6. Repeated follow-u ...[truncated 712 chars]
Remediation
## Remediation Suggestions 1. Require explicit user confirmation before every paid request, showing the amount, asset, network, recipient, destination endpoint, and cumulative session expenditure. 2. Enforce strict per-call, per-session, and daily spending limits in the payment client rather than relying only on Skill instructions. 3. Do not execute arbitrary `next_calls` URLs. Parse them as untrusted data and reconstruct requests from validated token identifiers. 4. Allowlist the exact HTTPS origin and permitted endpoint paths. Reject alternate schemes, hosts, ports, embedded credentials, and unapproved query parameters. 5. Disable cross-origin redirects and validate the final destination after every redirect. 6. Validate each HTTP 402 challenge, including payment amount, token contract, chain ID, recipient, expiration, and replay protection. 7. Apply maximum call-chain depth, retry limits, request-count limits, polling intervals, timeouts, and circuit breakers. 8. Present a dry-run plan before chained operations and require renewed approval when the destination or cumulative cost changes. 9. Log every payment authorization and provide an immediate cancellation mechanism.
Vulnerability Patterns
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (1)

Description-Behavior Mismatch

Medium
Confidence
95% confidence
Finding
The manifest description and use-cases are narrowly framed around token discovery, rug checks, and live DEX/token market data for crypto trading. However, the quick reference also exposes prediction-market odds and DeFi yield endpoints, which are broader financial-data capabilities not described as part of the skill’s stated purpose.

Static analysis

No suspicious patterns detected.