Skip to content
Heist/ feed
Back to feed
Medium

mppx has Stripe charge credential replay via missing idempotency check

Type: advisorySources: OSV

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 source

Published 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"
}