
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-55219 is a race condition vulnerability in Paymenter's credit payment implementation that allows authenticated users to double-spend credits by paying multiple invoices with the same credit balance. The flaw exists in app/Livewire/Invoices/Show.php within the payWithCredit() function, affecting Paymenter versions up to and including 1.5.4. It was published on June 30, 2026, with a patch released in version 1.5.5. The vulnerability carries a CVSS v3.1 base score of 5.3 (Medium) (GitHub Advisory).
The root cause is classified as CWE-362 (Concurrent Execution using Shared Resource with Improper Synchronization). The application calls lockForUpdate() — a pessimistic row lock — on the user's credit balance row outside of an active database transaction. In MySQL/MariaDB, row-level locks are only enforced within an explicit transaction; without one, the lock is silently ignored. As a result, two or more concurrent HTTP requests can simultaneously read the same credit balance, each independently determine it is sufficient, and both proceed to approve payment via ExtensionHelper::addPayment() (GitHub Advisory, Paymenter Advisory).
Successful exploitation allows any authenticated user with a valid credit balance to bypass balance restrictions and settle multiple pending invoices simultaneously at the cost of only a single invoice. Because payments are processed successfully through ExtensionHelper::addPayment(), the platform provisions the corresponding services or digital goods for each approved payment, resulting in direct financial loss or unauthorized resource acquisition for the platform operator. There is no confidentiality or availability impact; the integrity impact is high due to unauthorized manipulation of financial transaction records (GitHub Advisory).
payWithCredit() endpoint in app/Livewire/Invoices/Show.php, each referencing a different invoice ID.curl with parallel execution, Python's asyncio/aiohttp, or a custom script to send all requests at the same millisecond, exploiting the window before any balance deduction is committed.ExtensionHelper::addPayment() is called for each, provisioning services or digital goods for all invoices while only deducting the balance once (GitHub Advisory).ExtensionHelper::addPayment() in application logs without corresponding balance deductions.Upgrade Paymenter to version 1.5.5, which contains the fix for this vulnerability. The remediation wraps the credit payment logic in a proper database transaction so that lockForUpdate() is enforced correctly by MySQL/MariaDB. No configuration-based workaround is documented; upgrading is the only recommended remediation (GitHub Advisory, Paymenter Advisory).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."