
CVE-2026-73314の概念実証エクスプロイト。XenForo 2.3.13より前のバージョンにおけるPayPal RESTウェブフック署名検証のバイパスであり、不正な購入完了を可能にします。
XenForo 2.3.13 より前のバージョンでは、PayPal REST ウェブフックがサポートされていない署名アルゴリズムを指定した場合に、検証を通過させてしまう(fail open)脆弱性があります。
ウェブフックハンドラーは PAYPAL-AUTH-ALGO を小さな許可リストを通してマッピングします。値が不明な場合、マッピングされたアルゴリズムは null になります。リクエストを拒否する代わりに、検証パスはアルゴリズムが利用できないことをログに記録し、成功を返します。証明書の取得と openssl_verify() は実行されることはありません。
アクティブな PayPal REST 定期アップグレードがある場合、購入者は自分の定期アップグレード管理画面から購入リクエストキーを取得できます。そのキー、表示された金額/通貨、およびサポートされていないアルゴリズムを含む偽造された PAYMENT.CAPTURE.COMPLETED コールバックは、有効な PayPal 署名なしで通常の購入完了に到達する可能性があります。
私は XenForo 2.3.12(ビルド 2031270)で 30 日間の権限延長を再現しました。PoC は実際の決済アカウントを対象としておらず、隔離されたインストール環境の使い捨てアップグレードでのみ使用する必要があります。XenForo 2.3.13 に修正が含まれています。
python poc.py https://xenforo.example DISPOSABLE_REQUEST_KEY 10.00 USD
このスクリプトは 1 つの合成イベントを作成し、HTTP ステータスのみを報告します。修正済みのインストール環境ではこれを拒否するはずです。
発見者: Marco Paciaroni (BomboBombone)。