T09 · Insecure Skill Coding Practices
- Location
SKILL.md:1594- Finding
Unbounded Autonomous Payment Authorization to Dynamically Selected Endpoints
- Content
View full analysis
85 // 3-5. Pay + Receive: x402Fetch handles the entire 402 flow const response = await x402Fetch(agentEndpoint, { wallet, preferredNetwork: 'eip155:8453' }); const weatherData = await response.json(); ``` The associated documented flow explicitly states: ```text 3. CALL Agent sends HTTP GET to weather endpoint → receives 402 Payment Required → PAYMENT-REQUIRED header: $0.10 USDC on Base 4. PAY Agent signs EIP-3009 transferWithAuthorization → retries request with PAYMENT-SIGNATURE → server verifies via facilitator → payment settled on Base (~$0.001 gas) ``` ### Technical Analysis The Skill directs an agent to create a signing wallet from `AGENT_PRIVATE_KEY` and pass that wallet to `x402Fetch`. The helper automatically processes an HTTP 402 response, signs an EIP-3009 payment authorization, and transmits the authorization to ...[truncated 2593 chars]- Remediation
View remediation
