CVE-2024-0710
- 脆弱性: CVE-2024-0710 (認証なしフォーム送信による一意識別子の改ざん)
- CVSS: 5.3 (Medium)
- ソフトウェア: GP Unique ID (gp-unique-id)
- 影響を受けるバージョン: <= 1.5.5
- 修正バージョン: 1.5.6
- 開発者: Gravity Wiz
- 研究者: Karl Emil Nikka, Nikka Systems
- 公開日: 2024-04-10
- 最終更新日: 2024-04-18
概要
認証されていないフォーム送信者は、本来ランダムまたは連続値であるべきフィールドにカスタム値を設定できます。この脆弱性は、法的、機能的、またはセキュリティ上の理由で値がランダムまたは連続でなければならないサイトにのみ影響します。
背景
GP Unique ID は Gravity Forms のアドオンです。正常に送信されたエントリに一意識別子を割り当てます。エントリの実際のデータベース ID とは異なり、GP Unique ID(以下 GPUID)はフォーム作成者がカスタマイズでき、開始番号、文字セット、長さ、プレフィックス、サフィックスを指定した特定の構文に従います。GPUID はカスタム Gravity Forms エントリフィールドに保存されます。このフィールドはフロントエンドでは非表示です。
プラグイン開発者は GP Unique ID の一般的なユースケースとして以下を挙げています。
- 各エントリに固定長の確認番号または参照番号を提供する。
- 連続した請求書番号を維持する。
- 後続のフォーム送信で使用できる一意のクーポンコードを生成する。
- 抽選で使用する一意の番号を生成する。
脆弱性
GP Unique ID はフォームが正常に送信された後、フィールドにすでに値が存在しない場合にのみ GPUID を割り当てます。これにより、フォーム送信者はフォーム送信時にカスタム GPUID を設定できます。フィールドが空ではないため、実際の GPUID は保存されません。そのため、訪問者は以下のことが可能です。
- 構文に従わない GPUID を設定する
- 連続しない GPUID を設定する
- ランダムでない GPUID を設定する
- 別のエントリにすでに割り当てられている GPUID を設定する
パッチ
Gravity Wiz は 2024-04-09 に修正版プラグインをリリースしました。サイト管理者は修正バージョン(1.5.6)に更新し、該当する場合は以前の送信が改ざんされていないことを確認する必要があります。
- 2024-01-13: 脆弱性を Gravity Wiz に報告(Project Zero の 90 日間責任ある開示ポリシーに従う)。
- 2024-01-13: 脆弱性を Wordfence の CNA に提出。バグ報奨金プログラムへの参加を辞退。
- 2024-01-15: Gravity Wiz が報告を受け取ったことを確認。
- 2024-01-16: Gravity Wiz が脆弱性を認識し、パッチをリリースすると連絡。
- 2024-01-19: Wordfence が脆弱性に CVE ID CVE-2024-0710 を割り当て。
- 2024-02-29: Gravity Wiz に 45 日間のリマインダーを送信。
- 2024-04-01: 90 日間の責任ある開示期間が 2 週間後に終了することをリマインダーとして送信。
- 2024-04-07: Gravity Wiz から修正版プラグインのプレリリース版を受け取る。
- 2024-04-09: Gravity Wiz が修正版プラグインをリリース(初回報告から 87 日後、90 日間の責任ある開示期間内)。