CVE-2026-55219
PHP 脆弱性の分析と軽減

概要

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).

エクスプロイテーションのステップ

  1. Authenticate: Log in to a Paymenter instance (version ≤ 1.5.4) with a valid user account that holds a credit balance sufficient to pay at least one invoice.
  2. Identify target invoices: Locate two or more pending invoices whose individual costs are each within the available credit balance.
  3. Craft concurrent requests: Prepare multiple simultaneous HTTP POST requests targeting the payWithCredit() endpoint in app/Livewire/Invoices/Show.php, each referencing a different invoice ID.
  4. Race the requests: Use a tool such as 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.
  5. Collect provisioned services: Because both requests read the same pre-deduction balance and both pass the sufficiency check, ExtensionHelper::addPayment() is called for each, provisioning services or digital goods for all invoices while only deducting the balance once (GitHub Advisory).

妥協の兆候

  • Logs: Multiple successful payment log entries for different invoices within the same millisecond or sub-second window for the same user account; repeated calls to ExtensionHelper::addPayment() in application logs without corresponding balance deductions.
  • Database: Credit balance records showing a single deduction despite multiple invoices being marked as paid; invoice status tables reflecting multiple invoices paid simultaneously by the same user.
  • Application Behavior: Unexpected provisioning of multiple services or digital goods for a user whose credit balance should only cover one item (GitHub Advisory).

軽減策と回避策

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).

関連情報


ソースこのレポートは AI を使用して生成されました

関連 PHP 脆弱 性:

CVE 識別子

重大度

スコア

テクノロジー

コンポーネント名

CISA KEV エクスプロイト

修正あり

公開日

CVE-2026-47743HIGH8.7
  • PHP logoPHP
  • shopper/framework
いいえはいJul 23, 2026
CVE-2026-59931HIGH7.7
  • PHP logoPHP
  • phpoffice/phpspreadsheet
いいえはいJul 23, 2026
CVE-2026-59933HIGH7.5
  • PHP logoPHP
  • phpoffice/phpspreadsheet
いいえはいJul 23, 2026
CVE-2026-59932HIGH7.5
  • PHP logoPHP
  • phpoffice/phpspreadsheet
いいえはいJul 23, 2026
CVE-2026-59943MEDIUM6.3
  • PHP logoPHP
  • dompdf/dompdf
いいえはいJul 22, 2026

無料の脆弱性評価

クラウドセキュリティポスチャーのベンチマーク

9つのセキュリティドメインにわたるクラウドセキュリティプラクティスを評価して、リスクレベルをベンチマークし、防御のギャップを特定します。

評価を依頼する

パーソナライズされたデモを見る

実際に Wiz を見てみませんか?​

"私が今まで見た中で最高のユーザーエクスペリエンスは、クラウドワークロードを完全に可視化します。"
デビッド・エストリックCISO (最高情報責任者)
"Wiz を使えば、クラウド環境で何が起こっているかを 1 つの画面で確認することができます"
アダム・フレッチャーチーフ・セキュリティ・オフィサー
"Wizが何かを重要視した場合、それは実際に重要であることを私たちは知っています。"
グレッグ・ポニャトフスキ脅威および脆弱性管理責任者