CVE-2026-115937: Unauthenticated payment reuse allows unpaid orders to be marked as paid
The Mollie webhook endpoint accepts two independent, attacker-controlled parameters and never verifies that they belong together:
commerceTransactionHash — selects which Craft Commerce transaction is completed id — selects which Mollie payment is queried for its status
An unauthenticated attacker holding any paid Mollie payment ID from the merchant’s account can pair it with any transaction hash.
Commerce queries Mollie, sees status: paid, and marks the target transaction successful for that transaction’s full amount, regardless of how much was actually paid.
Affected Software
Event History
Frequently Asked Questions
Who is exposed to this issue?
Craft Commerce deployments using the Mollie webhook endpoint are exposed if an attacker can submit requests to that endpoint and obtain a paid Mollie payment ID from the merchant’s account.
What does an attacker need to mark an order as paid?
No authentication or user interaction is required. The attacker needs a paid Mollie payment ID and the commerceTransactionHash for the transaction they want to complete; the paid payment can be for a different amount than the target transaction.