GitLab の深刻な脆弱性 CVE-2023-7028:5,300 台のインスタンスが危険な状態

Over 5,300 GitLab servers exposed to zero-click account takeover attacks

2024/01/24 BleepingComputer — 2024年1月に発見された、GitLab のゼロクリック・アカウント乗っ取りの脆弱性 CVE-2023-7028 (CVSS:10.0) の脆弱性だが、インターネット上に公開されている 5,300 以上のインスタンスで放置されていることが判明した。この脆弱性の悪用に成功した攻撃者は、標的アカウントのパスワード再設定メールを自身が管理するメールアドレスに送信させ、パスワードを変更して対象のアカウントを乗っ取ることが可能になる。

この脆弱性は、二要素認証 (2FA:Two-Factor Authentication) をバイパスするものではないが、この特別なセキュリティ・メカニズムで保護されていないアカウントにとっては重大なリスクとなる。

この脆弱性の影響を受けるのは、GitLab Community Edition/Enterprise Edition の 16.7.2/16.5.6/16.6.4 未満のバージョンだ。それに対して、GitLab は 2024年1月11日に、16.7.2/16.5.6/16.6.4 を提供し、16.1.6/16.2.9/16.3.7 へのバックポート・パッチをリリースしている。

セキュリティ・アップデートが公開されてから 13日後となる、1月24日の時点において、5,379 の脆弱な GitLab インスタンスがオンラインで公開されていることが、脅威モニタリング・サービスの ShadowServer により明らかにされた。

ソフトウェア開発/プロジェクト計画のプラットフォームとしての GitLab の役割と、この脆弱性の性質と深刻さを考えると、一連の脆弱なサーバは、悪意の活動の危険にさらされていることになる。具体的に言うと、サプライチェーン攻撃/専有コードの開示/API キーの漏えいなどが生じる恐れがある。

Shadowserver によると、脆弱性のあるサーバーの多くが存在するのは米国 (964台) で、次いで、ドイツ (730台)/ロシア (721台)/中国 (503台)/フランス (298台)/英国 (122台)/インド (117台)/カナダ (99台) となる。

Location of vulnerable GitLab instances
脆弱な GitLab インスタンスの分布 (Shadowserver)

現時点でパッチを適用していない場合は、すでに侵害されている可能性があるため、GitLab のインシデント対応ガイドを使用して、侵害の兆候をチェックすることが推奨される。

以前に GitLab は、ユーザー向けの検知のヒントを公開している:

  • gitlab-rails/production_json.log をチェックして、/users/password パスへの HTTP リクエストでの params.value.email が、複数のメール・アドレスを含む JSON 配列になっていないか確認する。
  • PasswordsController#create の meta.caller.id を用いる gitlab-rails/audit_json.log エントリと、複数のメールアドレスを持つ JSON 配列で構成された target_details エントリを確認する。

漏洩したインスタンスを発見した場合は、全てのアカウントで 2FA を有効化し、セキュリティ・アップデートを適用する。それに加えて、全ての認証情報/API トークン/証明書などの機密情報を変更する必要がある。

そして、サーバを保護した後に、ソースコードや改ざんされた可能性のあるファイルなどの、開発者環境での変更点について確認する。

現時点において、CVE-2023-7028 を悪用した事例は確認されていない。しかし、対策を先延ばしにする理由にはならない。