CVE-2023-7028 の詳細
CVEの情報
説明:
An issue has been discovered in GitLab CE/EE affecting all versions from 16.1 prior to 16.1.6, 16.2 prior to 16.2.9, 16.3 prior to 16.3.7, 16.4 prior to 16.4.5, 16.5 prior to 16.5.6, 16.6 prior to 16.6.4, and 16.7 prior to 16.7.2 in which user account password reset emails could be delivered to an unverified email address.
CVE更新日: 2024-01-12 14:15:49.420000
CVSSバージョン: 3.1
CVSSスコア: 10.0
KEVの情報
KEV更新日: 2024-05-01
EPSSの情報
EPSSは脆弱性が今後30日以内に悪用される確率を予測するスコアリングシステムで、FIRST(Forum of Incident Response and Security Teams)が提供しています。
EPSSのスコアが高いということは、攻撃されるリスクが高いことを意味するので、早めの対策が必要です。
EPSSスコア: 0.946470000
EPSS更新日: 2026-10-16 00:00:00
SSVCの情報
SSVCはカーネギーメロン大学ソフトウェア工学研究所が提案する脆弱性の評価手法です。ステークホルダーごとに脆弱性対応の優先度を決定することを支援します。
本サイトでは、CVE、KEV、EPSSの内容からExploitation(悪用状況)、Technical Impact(技術的影響)、Automatable(自動攻撃の可否)を判定します。
Exploitation: active
Technical Impact: high
Automatable: True
CVE-2023-7028は、GitLab Community Edition (CE)およびEnterprise Edition (EE)に存在する、パスワードリセット機能における認証バイパスの脆弱性です。この脆弱性を悪用されると、攻撃者はユーザーの多要素認証が有効になっていない場合、ユーザーのアカウントを乗っ取ることができる可能性があります。
1. 脆弱性の概要
CVE-2023-7028は、GitLabのパスワードリセット機能の不適切な実装に起因する脆弱性です。通常、パスワードリセット時には、登録されたメールアドレスにリセットリンクが送信されますが、この脆弱性により、認証されていないメールアドレスにもパスワードリセットのメールが送信される可能性があります。この問題は、パスワードリセットリクエスト時に複数のメールアドレスをJSON配列として提供することで悪用される可能性があります。
1.1 影響 この脆弱性を悪用されると、認証されていない攻撃者が被害者の操作なしにアカウントを乗っ取ることができます。攻撃者は、標的ユーザーのメールアドレスを追加の入力としてパスワードリセットプロセス中に提供することで、そのユーザーのセッションを乗っ取ることができます。 これにより、機密情報の窃取、ソースコードやコミット履歴へのアクセス、さらには他のユーザーやシステムへの攻撃の足がかりとなる可能性があります。 多要素認証 (MFA) が有効になっているユーザーの場合、攻撃者はパスワードをリセットできるものの、アカウントを完全に制御することはできません。
1.2 深刻度 CVE-2023-7028は、CVSSv3スコアが9.8(Critical)と評価されており、非常に深刻度の高い脆弱性です。 GitLab社自身も最高深刻度10.0と評価しています。 攻撃はネットワーク経由で実行可能であり、攻撃者に特権やユーザーとのやり取りは不要です。
2. 対象となる環境
2.1 影響を受けるOSバージョン この脆弱性は、特定のOSバージョンに依存するものではなく、GitLabアプリケーション自体に存在します。
2.2 影響を受ける設定 以下のGitLab Community Edition (CE) および Enterprise Edition (EE) のバージョンが影響を受けます。
3. 影響を受けた時の兆候
以下のログを調査することで、不審な活動を特定できる可能性があります。
gitlab-rails/production_json.logファイルで、/users/passwordパスへのHTTPリクエストを監視します。特に、params.value.emailに複数のメールアドレスを含むJSON配列が含まれているリクエストに注意してください。gitlab-rails/audit_json.logファイルで、meta.caller_idがPasswordsController#createであり、target_detailsに複数のメールアドレスを含むJSON配列があるエントリをチェックします。4. 推奨対策
4.1 本対策
4.2 暫定回避策(緩和策)
password_authentication_enabled設定を無効にすることで、パスワードリセット機能を無効にし、脆弱性を緩和できます。他に解説すべき観点
参照したサイト