Read the docs
TI-2026-39897 Aliases CVE-2026-55219GHSA-pgcq-8grm-5rx9

Paymenter: Race condition in payWithCredit() enables credit double-spend

Priority LOW 23CWE-362Published · Updated

Key facts

Attack vector
Network
Privileges required
Low
User interaction
None
Attack complexity
High
Impact type
—
Confidentiality · integrity · availability
None · High · None
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub.

Summary

Paymenter is a free and open-source webshop solution for management of hosting services. In versions prior to 1.5.5, the credit payment implementation in app/Livewire/Invoices/Show.php executes a pessimistic row lock (lockForUpdate()) outside of an active database transaction. Because MySQL/MariaDB requires an enclosing transaction to enforce row-level locks, the guard is ineffective. Concurrent payment requests can exploit this race condition to read the same credit balance simultaneously, allowing users to pay multiple invoices using the same credit balance. In database systems like MySQL, a row lock only works inside a formal transaction; without one, the lock is completely ignored. Because there is no active lock, two payment requests sent at the exact same millisecond can look at the database at the same time. Both requests see the original credit balance, decide it is sufficient, and approve the payment. Because the payment processes successfully through ExtensionHelper::addPayment(), the application provisions the corresponding services or digital goods, resulting in direct financial or resource loss to the platform. This issue has been fixed in version 1.5.5.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00214 11th percentileScored 2026-11-07
Fix Fixed Paymenter (Paymenter): 1.5.5paymenter/paymenter (Packagist): 1.5.5

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
PaymenterPaymenterbefore 1.5.51.5.5Patch availableCNA
—paymenter/paymenter (Packagist)before 1.5.51.5.5Patch availableGHSA-pgcq-8grm-5rx9
  • Paymenter VendorPaymenter Affected before 1.5.5 Fixed in 1.5.5 Patch available CNA
  • paymenter/paymenter (Packagist) Vendor— Affected before 1.5.5 Fixed in 1.5.5 Patch available GHSA-pgcq-8grm-5rx9

Remediation

  • Fix · CNA Paymenter (Paymenter) Fixed in 1.5.5
  • Fix · GHSA-pgcq-8grm-5rx9 paymenter/paymenter (Packagist) Fixed in 1.5.5 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-55219
  2. 2026-10-03 Alias added: GHSA-pgcq-8grm-5rx9

References

  • TI-2025-35891 Paymenter Vulnerable to Remote Code Execution via Public File Uploads CVSS 3.1CRITICAL 10.0
  • TI-2026-34786 Paymenter: URL parameter injection bypasses paid plan limits at checkout CVSS 3.1HIGH 8.5
  • TI-2026-32495 Paymenter: Blind Unauthenticated SSRF on the Paypal gateway module CVSS 3.1MEDIUM 5.3
  • TI-2026-50118 Paymenter: Credit-refund double-spend race condition in service downgrade (doUpgrade) CVSS 3.1MEDIUM 6.5
  • TI-2026-32497 Paymenter: Broken object level authorization via service reference manipulation on ticket creation CVSS 3.1MEDIUM 5.4
  • TI-2026-32496 Paymenter doesn't reset email verification status after email change CVSS 3.1MEDIUM 4.3

Sources