{"id":"GHSA-8mhj-rffc-rcvw","summary":"mppx has Stripe charge credential replay via missing idempotency check","details":"### Impact\n\nThe `stripe/charge` payment method did not check Stripe's `Idempotent-Replayed` response header when creating PaymentIntents. An attacker could replay a valid credential containing the same `spt` token against a new challenge, and the server would accept the replayed Stripe PaymentIntent as a new successful payment without actually charging the customer again. This allowed an attacker to pay once and consume unlimited resources by replaying the credential.\n\n### Patches\n\nFixed in 0.4.11. The server now checks the `Idempotent-Replayed` header and rejects replayed PaymentIntents.\n\n### Workarounds\n\nThere are no workarounds available for this vulnerability.","aliases":["CVE-2026-34210"],"modified":"2026-03-31T19:05:06.644346Z","published":"2026-03-29T15:11:30Z","database_specific":{"github_reviewed":true,"github_reviewed_at":"2026-03-29T15:11:30Z","nvd_published_at":"2026-03-31T15:16:18Z","cwe_ids":["CWE-697"],"severity":"MODERATE"},"references":[{"type":"WEB","url":"https://github.com/wevm/mppx/security/advisories/GHSA-8mhj-rffc-rcvw"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-34210"},{"type":"WEB","url":"https://github.com/wevm/mppx/commit/b2b1a0b60506fc71aa80b8a025084949dca1a994"},{"type":"PACKAGE","url":"https://github.com/wevm/mppx"},{"type":"WEB","url":"https://github.com/wevm/mppx/releases/tag/mppx%400.4.11"},{"type":"WEB","url":"https://github.com/wevm/mppx/releases/tag/mppx@0.4.11"}],"affected":[{"package":{"name":"mppx","ecosystem":"npm","purl":"pkg:npm/mppx"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.4.11"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/03/GHSA-8mhj-rffc-rcvw/GHSA-8mhj-rffc-rcvw.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N"}]}