mppx Stripe Payment Credential Replay Vulnerability

Vulnerability

A vulnerability in the mppx TypeScript interface for the machine payments protocol, prior to version 0.4.11, allowed for the replay of Stripe payment credentials. The issue arose because the stripe/charge payment method did not verify Stripe's Idempotent-Replayed response header when creating PaymentIntents. This oversight enabled an attacker to reuse a valid credential with the same spt token against a new challenge, leading the server to mistakenly accept the replayed PaymentIntent as a new successful payment, without charging the customer again. As a result, an attacker could exploit this to pay once and repeatedly consume resources by replaying the credential.

Impact

Exploitation of this vulnerability allowed for unauthorized replay of payment credentials, leading to potential resource exhaustion on the server.

Reproduction

The vulnerability can be reproduced by creating a PaymentIntent through the stripe/charge payment method in a version of mppx prior to 0.4.11. After the initial payment is processed, the same spt token can be replayed against a new challenge. The server will accept the replayed PaymentIntent as a new payment, without charging the customer again. This can be automated to consume unlimited resources by repeatedly replaying the credential.

Remediation

Users can upgrade to mppx version 0.4.11 or later, where this vulnerability has been patched by adding a check for the Idempotent-Replayed header to reject replayed PaymentIntents.

Added: Mar 31, 2026, 3:59 PM
Updated: Mar 31, 2026, 3:59 PM

Vulnerability Rating

Custom Algorithm
spread
0.0
impact
3.1
exploitability
5.7
remediation
0.0
relevance
5.0
threat
4.8
urgency
2.9
incentive
0.0

Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.