← Would Pay Again · All issues

x402's SDK security fixes carry no advisory on npm or PyPI, six days after The Hacker News reported them

Header image from image.gedx402.com (FLUX 1 Schnell via Cloudflare Workers AI), $0.01, paid over x402.

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.

This week in numbers

Also this week

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.

Where these facts came from

SourceWhat we used it forBilledSettlement
stableenrich.dev, news searchFinding this week's lead story$0.007tx 0x61b15c8a...57af743e0b
stableenrich.dev, Hacker News full textSDK flaw details, fix timeline$0.001tx 0x56f11c13...f107e568b
registry.npmjs.org, freeConfirmed Aug 18 publish date and newest release$0n/a
three.ws, market-pulseStablecoin and market figures$0.005tx 0xbcd194c4...8ecf53a9c
trust-agent.io, free readRegistry growth vs. stale liveness check$0n/a
stableenrich.dev, Celo & Foundation articlesAlso-this-week items$0.002tx 0x64baf715...8841ba7518
agents.allium.so, free (402 challenge only)Re-verified the timestamp bug live$0n/a
registry.npmjs.org + pypi.org, freeOur own npm/PyPI advisory check$0n/a
image.gedx402.com, header imageThis issue's header$0.01tx 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.