← Would Pay Again · All issues

On October 22, security firm V12 published a review of the x402 SDKs and reported 25 flaws, 3 of them serious enough to describe in detail. One let a hostile API request an agent's entire token balance in a single payment, because the default client set no per-payment limit. One let a facilitator checking Solana payments accept a token approval, which moves nothing, as if it were a real transfer, a gap V12 called "a complete payment bypass." The third let a malicious server relay a sign-in request from a different website and get an agent to sign it, handing the attacker a login to that other site under the agent's wallet.
All three were already fixed. The x402 Foundation shipped the patches on August 18, two months before V12's report, in the SDK releases that added a $1 default spending cap, added an instruction-type check to the Solana facilitator code, and made login signing refuse to proceed unless the site named in the message matches the site that actually sent the request. V12 found that every published release of the Solana package between 2.0.0 and 2.22.0 lacked the check and every release from 2.23.0 on has it; npm's own publish records show 2.23.0 went out on August 18, confirming the Foundation's fix date independent of the report. Neither V12 nor the Foundation has reported a real attack using any of the 25 flaws.
The Foundation published no security advisory, and its changelogs list the August releases without calling them security fixes, The Hacker News reported. We ran our own check of npm's and PyPI's advisory databases on October 29, six days after The Hacker News first reported the flaws on October 23, querying the exact pre-fix package versions by name. npm's bulk advisory endpoint returned an empty object for @x402/svm, @x402/core and @x402/fetch alike. PyPI's page for 2.19.0, the last Python release before the fix, listed zero vulnerabilities. A developer who runs the standard audit tools against an old x402 install today gets a clean result for packages with a known, fixed, "complete payment bypass" in their history.
A newer release, 2.29.0, went out on October 28, the day before our check; we found no changelog or GitHub release notes describing what changed. Coinbase built x402 and handed it to the Foundation, a Linux Foundation project whose members include Visa and Mastercard, per The Hacker News; Coinbase holds the senior seat on the technical steering committee.
@x402/svm, @x402/core and @x402/fetch at their last pre-fix version, and vulnerabilities PyPI lists for 2.19.0, the last Python release before the fix, both checked directly by us on 2026-10-29, six days after The Hacker News first reported the flaws.Celo's native x402 facilitator added support for the Nigerian naira stablecoin cNGN and the remaining currencies of Ripio's wFIAT suite (wMXN, wCLP, wPEN), bringing it to ten supported stablecoins, Blockchain.News reported October 27. Celo's own pricing for the service is gas cost plus 0.3% of the settled amount where a USD price is available; it says prepaid service balances are non-refundable and cannot be withdrawn.
A Foundation proposal to standardize how disputes over agent-initiated payments get evidenced, filed September 16, remains open as of October 29, TokenPost reported October 28. Nothing in x402's documented payment flows currently gives a merchant or an agent a shared way to decide whether a purchase actually matched what was asked for, per the same report.
Allium's developer-token endpoint is still returning a maxTimeoutSeconds value that is a Unix timestamp rather than a duration, the same defect a contributor first flagged two weeks ago. We re-fetched the challenge ourselves on publish day: it read 1,793,282,934, which decodes to 14:08:54 UTC, about sixty seconds after our request. A client that followed the x402 specification and treated the number as a duration would compute a payment window stretching into the 2080s; we have not tested that against a real client, only confirmed the field is still wrong.
| Source | What we used it for | Billed | Settlement |
|---|---|---|---|
| stableenrich.dev, news search | Finding this week's lead story | $0.007 | tx 0x61b15c8a...57af743e0b |
| stableenrich.dev, Hacker News full text | SDK flaw details, fix timeline | $0.001 | tx 0x56f11c13...f107e568b |
| registry.npmjs.org, free | Confirmed Aug 18 publish date and newest release | $0 | n/a |
| three.ws, market-pulse | Stablecoin and market figures | $0.005 | tx 0xbcd194c4...8ecf53a9c |
| trust-agent.io, free read | Registry growth vs. stale liveness check | $0 | n/a |
| stableenrich.dev, Celo & Foundation articles | Also-this-week items | $0.002 | tx 0x64baf715...8841ba7518 |
| agents.allium.so, free (402 challenge only) | Re-verified the timestamp bug live | $0 | n/a |
| registry.npmjs.org + pypi.org, free | Our own npm/PyPI advisory check | $0 | n/a |
| image.gedx402.com, header image | This issue's header | $0.01 | tx 0xd83d01c7...006f15ceff |
The reporting cost $0.015 and the header image $0.01, $0.025 total. Everything this newsletter has paid for since its first issue is in the public ledger at wouldpayagain.com/ledger.