T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:25- Finding
Automatic USDC Payment Without Explicit Final User Confirmation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 25-29 and 40-49
Vulnerability Type: Missing transaction-specific authorization before wallet spending
Risk Level: MediumVulnerable Code Snippet
markdown ### `x402_fetch` — Call and Pay Call any x402 endpoint with automatic payment from the configured wallet. The plugin checks USDC balances across all funded chains and picks the best option. Returns the API response data plus a payment receipt. If the wallet has no funds on any accepted chain, tell the user to fund their wallet.markdown ### "Find me an API for X" 1. `x402_search` with their query 2. Present top results with prices and quality scores 3. `x402_check` on their pick 4. Show per-chain pricing 5. `x402_fetch` to call it ### "Call this URL" 1. `x402_check` to show the price 2. `x402_fetch` to call and payTechnical Analysis
The skill instructs the agent to invoke
x402_fetch, which automatically spends USDC from a configured Solana or EVM wallet. Althoughx402_checkpreviews pricing, the documented workflows proceed directly from displaying the price to executing payment. They do not require explicit, transaction-specific user confirmation after the endpoint, exact cost, payment network, and other transaction details are known.This weakens least-privilege and user-authorization boundaries around a financially sensitive tool. A request to inspect an endpoint, select a search result, or preview a price could be interpreted as authorization to spend funds. Automatic selection among funded chains further means the user may not have approved the precise transaction ultimately performed.
Attack Path
- A user asks the agent to find an API or supplies an x402 endpoint.
- The agent runs
x402_searchorx402_checkand displays the available price. - The workflow instructs the agent to proceed immediately to
x402_fetch. - The plugin identi ...[truncated 739 chars]
- Remediation
View remediation
Remediation Suggestions
- Require explicit confirmation immediately before every invocation of
x402_fetchorx402_pay. - Before requesting confirmation, display:
- The exact endpoint and HTTP operation.
- The maximum USDC amount.
- The selected blockchain network.
- The payment recipient, when available.
- Whether the operation is one-time or repeated.
- Treat endpoint selection, price inspection, and earlier general requests as insufficient payment authorization.
- Do not automatically select a chain until the user has either approved that specific chain or explicitly enabled automatic chain selection.
- Enforce a conservative per-call spending limit independently of agent instructions.
- Require renewed confirmation whenever the endpoint, price, recipient, network, or number of calls changes.
- Add a safe workflow step such as:
markdown 5. Present the exact transaction details and ask for explicit confirmation. 6. Invoke `x402_fetch` only after the user confirms those details.
- Require explicit confirmation immediately before every invocation of
