T09 · Insecure Skill Coding Practices
- Location
references/api-contract.md:100- Finding
Paid API Transaction May Proceed Without Explicit User Authorization
- Content
View full analysis
`. - Keep the same validated payload when you retry. Payment does not change movement validation, required inputs, or split rules. - Follow the live challenge and current server behavior. Current production contract: - Current x402 route prices are published at `GET /v1/payment-requirements` - Authorized `2xx` responses settle the payment - Authorized post-billable `4xx` responses also settle the payment - `5xx` responses do not settle the payment - If the live challenge or server behavior differs, treat the live server behavior as authoritative ``` Related instruction from `SKILL.md:52`: ```markdown - `POST /v1/compute-power` may require an x402 payment challenge. See [references/api-contract.md](references/api-contract.md) for step-by-step examples. ``` ### Technical Analysis The documented workflow tells the agent to build an x402 payment proof and retry a request after receiving an HTTP 402 challenge. It does not require transaction-specific user confirmation before creating or submitting the proof. It also does not establish a maximum price, approved asset, network, recipient, expiration policy, or cumulative spending limit. Fetching public pricing metadata does not itself constitute informed user authorization. The risk is amplified by the documented behavior that an authorized post-billable `4xx` response can settle th ...[truncated 1745 chars]- Remediation
View remediation
