mppx has Stripe charge credential replay via missing idempotency check
mppx is a TypeScript interface for machine payments protocol. Prior to version 0.4.11, the 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. This issue has been patched in version 0.4.11.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-34210
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 7 Nov 2026, 12:05 UTC · Revision 1
Source evidence
mppx has Stripe charge credential replay via missing idempotency check
core-osv · Original sourcePublished 31 Mar 2026, 14:10 UTC
mppx is a TypeScript interface for machine payments protocol. Prior to version 0.4.11, the 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. This issue has been patched in version 0.4.11.
osv:CVE-2026-34210
Complete source record
{
"id": "8bd3471a27f1322c0157af7cdd23692bf800db6db3157935d44e127cc7ed84de",
"url": "https://osv.dev/vulnerability/CVE-2026-34210",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "mppx has Stripe charge credential replay via missing idempotency check",
"summary": "mppx is a TypeScript interface for machine payments protocol. Prior to version 0.4.11, the 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. This issue has been patched in version 0.4.11.",
"evidence": "osv:CVE-2026-34210",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-34210",
"aliases": [
"CVE-2026-34210",
"GHSA-8mhj-rffc-rcvw"
],
"metrics": [
{
"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"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/wevm/mppx",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "8ce9f56b6c75c807ecd758563d94f2a698fb5335"
},
{
"fixed": "b2b1a0b60506fc71aa80b8a025084949dca1a994"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:wevm:mppx:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "0.4.11"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "b2b1a0b60506fc71aa80b8a025084949dca1a994"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "8ce9f56b6c75c807ecd758563d94f2a698fb5335"
}
],
"source": "REFERENCES_TAG",
"original_tag": "mppx@0.4.11"
}
]
}
}
],
"versions": [
"mppx@0.4.10",
"mppx@0.4.9",
"mppx@0.4.8",
"mppx@0.4.7",
"mppx@0.4.6",
"mppx@0.4.5",
"mppx@0.4.4",
"mppx@0.4.3",
"mppx@0.4.2",
"mppx@0.4.1",
"mppx@0.4.0",
"mppx@0.3.16",
"mppx@0.3.15",
"mppx@0.3.14",
"mppx@0.3.13",
"mppx@0.3.12",
"mppx@0.3.11",
"mppx@0.3.9",
"mppx@0.3.8",
"mppx@0.3.7",
"mppx@0.3.6",
"mppx@0.3.5",
"mppx@0.3.4",
"mppx@0.3.3",
"mppx@0.3.2",
"mppx@0.3.1",
"mppx@0.2.6",
"mppx@0.2.5",
"mppx@0.2.4",
"mppx@0.2.3",
"mppx@0.2.2",
"mppx@0.2.1",
"mppx@0.2.0",
"mppx@0.1.1",
"mppx@0.1.0",
"mpay@0.2.4",
"mpay@0.2.3",
"mpay@0.2.2",
"mpay@0.2.1",
"mpay@0.2.0",
"mpay@0.1.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-34210.json"
}
}
],
"modified": "2026-10-28T02:30:50.982377193Z",
"provider": "osv",
"references": [
"https://github.com/wevm/mppx/releases/tag/mppx@0.4.11",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/34xxx/CVE-2026-34210.json",
"https://github.com/wevm/mppx/security/advisories/GHSA-8mhj-rffc-rcvw",
"https://nvd.nist.gov/vuln/detail/CVE-2026-34210",
"https://github.com/wevm/mppx/commit/b2b1a0b60506fc71aa80b8a025084949dca1a994"
],
"provider_metadata": {
"cwe_ids": [
"CWE-697"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/34xxx/CVE-2026-34210.json"
}
},
"related_cves": [
{
"value": "CVE-2026-34210",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 519228,
"published_at": "2026-03-31T14:10:10.463+00:00"
}