Trusted Design

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

AIを使った解説

解説:

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) のバージョンが影響を受けます。

    • 16.1.x (16.1.6より前の全バージョン)
    • 16.2.x (16.2.9より前の全バージョン)
    • 16.3.x (16.3.7より前の全バージョン)
    • 16.4.x (16.4.5より前の全バージョン)
    • 16.5.x (16.5.6より前の全バージョン)
    • 16.6.x (16.6.4より前の全バージョン)
    • 16.7.x (16.7.2より前の全バージョン)

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 本対策

    • GitLabのアップグレード: GitLabの各インスタンスを、脆弱性が修正された最新バージョンに直ちにアップグレードしてください。
      • 修正バージョン: 16.7.2, 16.6.4, 16.5.6
      • バックポートされた修正バージョン: 16.1.6, 16.2.9, 16.3.7, 16.4.5
    • 多要素認証 (MFA) の有効化: すべてのGitLabユーザー、特に管理者アカウントに対して多要素認証を有効にすることを強く推奨します。これにより、攻撃者がパスワードをリセットできたとしても、アカウントの完全な乗っ取りを防ぐことができます。
  • 4.2 暫定回避策(緩和策)

    • 外部IDプロバイダーを設定しているセルフマネージドインスタンスの場合、password_authentication_enabled 設定を無効にすることで、パスワードリセット機能を無効にし、脆弱性を緩和できます。

他に解説すべき観点

  • 発見と公開: この脆弱性は、GitLabのバグバウンティプログラムを通じてasterion04氏によって報告されました。
  • 積極的な悪用: 脆弱性の概念実証コード(PoC)が公開されており、 実際の攻撃での悪用も確認されています。 CISAは、2024年5月1日にこの脆弱性を既知の悪用されている脆弱性(KEV)カタログに追加しました。

参照したサイト

NVDサイト

NVDでCVEの詳細を見る

戻る