---
id: "CVE-2026-115937"
kind: "vulnerability"
aliases: ["CVE-2026-115937"]
title: "Craft Commerce: Mollie webhook marks unpaid orders successful without verification"
severity: "high"
cvss: 8.7
epss: 0.00249
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["craft-cms", "craft-commerce", "e-commerce", "mollie", "package", "php"]
not_affected_if: ["mollie-gateway-disabled"]
published_at: "2026-10-23T22:16:59+00:00"
first_seen_at: "2026-10-23T23:44:51+00:00"
updated_at: "2026-10-25T12:38:49+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-115937", "first_seen_at": "2026-10-23T23:44:51+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-115937", "first_seen_at": "2026-10-25T12:38:49+00:00"}]
---

# Craft Commerce: Mollie webhook marks unpaid orders successful without verification

The Mollie webhook endpoint in Craft Commerce accepts a transaction hash and a Mollie payment ID without checking that they belong together. An unauthenticated attacker holding any paid Mollie payment ID from the merchant's account can mark any transaction as paid for its full amount.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- unknown

## Fix

- unknown

## Timeline

- 2026-10-23T23:44:51+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-115937
- 2026-10-25T12:38:49+00:00 epss https://api.first.org/data/v1/epss?cve=CVE-2026-115937

## From the sources

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.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
