Formidable Formsに認証不要の支払いバイパス脆弱性!あなたのECサイトは大丈夫?

WordPressサイト運営者必見!Formidable Formsの重大な支払いバイパス脆弱性
WordPressを使っているWeb制作者やサイト運営者の皆さん、こんにちは!
今回は、WordPressの人気フォームプラグイン「Formidable Forms」で発見された、非常に重大な脆弱性についてお届けします。もしあなたのサイトでこのプラグインを使って決済を処理しているなら、今すぐ確認が必要です。
何ができるのか?:低額決済を悪用し、高額商品をタダで手に入れる手口
今回発見されたのは、Formidable Formsプラグイン(バージョン6.28まで)に存在する「支払い整合性バイパス」の脆弱性です。この脆弱性は、なんと認証なしで悪用される可能性があります。つまり、攻撃者はサイトにログインすることなく、この脆弱性を突くことができるのです。
- 対象プラグイン: Formidable Forms(バージョン6.28以下)
- 影響サイト数: 300,000以上のWordPressサイト
- 脆弱性の内容: Stripeの支払い時に、低額の決済で得たPaymentIntent(支払い意図)を再利用し、より高額な商品の購入を「支払い済み」として処理させることが可能。
- 深刻度: CVSSスコア 7.5/10(High)と評価されており、CVE-2026-2890が割り当てられています。
この脆弱性のキモは、Formidable FormsがStripeのPaymentIntentのステータスのみを信頼し、実際の支払額とフォームで指定された金額が一致しているかを適切に検証していなかった点にあります。具体的には、handle_one_time_stripe_link_return_url関数がPaymentIntentのステータスだけで支払い記録を完了とマークしてしまい、verify_intent()関数もクライアントシークレットの所有権しか検証せず、PaymentIntentを特定のフォーム送信や金額に紐付けていなかったため、攻撃者がこの隙を突くことができました。
どう使えるのか?(攻撃者の視点とサイト運営者のリスク)
攻撃者は、この脆弱性を悪用して以下のような手口で不正行為を行う可能性があります。
- 具体的な攻撃手順(想定):
1. まず、攻撃者はあなたのサイトで、例えば100円といった非常に低額な商品をFormidable Forms経由でStripe決済します。
2. この決済が完了すると、StripeからPaymentIntentが発行されます。
3. 次に、攻撃者はあなたのサイトで、例えば10万円といった高額な商品をFormidable Forms経由で購入しようとします。
4. この際、攻撃者は1で取得した低額決済用のPaymentIntentを再利用し、Formidable Formsに送信します。
5. Formidable Formsは、PaymentIntentのステータスが「完了」であることだけを見て、金額が一致しないにもかかわらず、高額な商品の購入を「支払い済み」として処理してしまいます。
この結果、あなたのサイトは高額な商品を無償で提供してしまうことになり、甚大な金銭的損失を被る可能性があります。特にデジタル製品、メンバーシップ、イベント登録、サービス購入など、Formidable FormsとStripeを連携して決済を処理しているサイトは、このリスクに直面します。認証が不要であるため、攻撃の敷居が低いことも大きな懸念点です。
ただし、元記事によると、この脆弱性はリモートコード実行(RCE)を可能にするものではありません。しかし、金銭的な被害は甚大になる可能性があります。
試すならどこから始めるか?(今すぐできる対策と確認)
あなたのWordPressサイトをこの脅威から守るために、今すぐ以下の対応を強く推奨します。
1. Formidable Formsプラグインのバージョンを確認・アップデートする
最も重要な対策は、Formidable Formsプラグインを最新バージョンにアップデートすることです。元記事ではバージョン6.28までが影響を受けると明記されていますので、それ以降の修正済みバージョンに速やかに更新してください。プラグインのアップデートはWordPressダッシュボードから簡単に行えます。
- WordPress管理画面にログイン
- 「プラグイン」>「インストール済みプラグイン」へ移動
- 「Formidable Forms」を探し、もし更新通知があれば「今すぐ更新」をクリック
更新前に必ずバックアップを取ることを忘れないでください。
2. Stripe決済連携状況を確認する
もしFormidable FormsとStripeを連携して決済フォームを運用している場合は、特に注意が必要です。念のため、Stripeのダッシュボードで不審な取引がないか、決済ログを確認することをお勧めします。
3. 定期的なセキュリティチェックと監視
今回の脆弱性は、フォームからの決済処理における検証不足が原因でした。今後も同様の脆弱性が見つかる可能性はゼロではありません。日頃から以下の点に留意し、サイトのセキュリティを強化しましょう。
- プラグイン・テーマの定期的なアップデート: WordPress本体はもちろん、使用しているすべてのプラグインとテーマを常に最新の状態に保つ。
- セキュリティプラグインの導入: WordfenceやSucuriなどのセキュリティプラグインを導入し、定期的なスキャンやファイアウォール機能でサイトを保護する。
- アクセスログの監視: 不審なアクセスや異常な決済パターンがないか、定期的にサーバーのアクセスログやStripeのログを確認する。
まとめ
Formidable Formsの支払いバイパス脆弱性は、あなたのECサイトやサービス提供サイトにとって、売上損失や顧客からの信頼失墜に直結する深刻な問題です。認証不要で攻撃が可能であるため、迅速な対応が求められます。
WordPressサイトを運営するWeb制作者や開発者として、常に最新のセキュリティ情報をキャッチアップし、適切な対策を講じることが私たちの責任です。今回の情報を活用し、皆さんのサイトが安全に運営されることを心から願っています。


