GitLab

GitLabは、GitLab Community Edition (CE)およびEnterprise Edition (EE)のセルフマネージドインストールに影響するSAML認証バイパスの重大な脆弱性に対処するセキュリティアップデートをリリースしました。

Security Assertion Markup Language (SAML)はシングルサインオン(SSO)認証プロトコルで、ユーザが同じ認証情報を使って異なるサービスにログインすることを可能にします。

CVE-2024-45409として追跡されているこの欠陥は、GitLabがSAMLベースの認証を処理するために使用しているOmniAuth-SAMLとRuby-SAMLライブラリの問題から生じています。

この脆弱性は、IDプロバイダ(IdP)がGitLabに送信するSAMLレスポンスに設定ミスが含まれていたり、操作されていたりすると発生します。

具体的には、異なるシステム間でユーザーを一意に識別するために使用されるextern_uid(外部ユーザーID)など、SAMLアサーション内の重要な要素の検証が不十分であるという欠陥があります。

攻撃者は悪意のある SAML レスポンスを作成し、GitLab を騙して認証済みユーザーとして認識させ、SAML 認証をバイパスして GitLab インスタンスにアクセスすることができます。

CVE-2024-45409の欠陥は、GitLab 17.3.3、17.2.7、17.1.8、17.0.8、16.11.10、およびこれらのブランチのすべての以前のリリースに影響します。

この脆弱性はGitLabのバージョン17.3.3、17.2.7、17.1.8、17.0.8、16.11.10で対処されており、OmniAuth SAMLはバージョン2.2.1に、Ruby-SAMLは1.17.0にアップグレードされている。

「以下に説明する問題の影響を受けるバージョンを実行しているすべてのインストールは、できるだけ早く最新バージョンにアップグレードすることを強くお勧めします

GitLab.com上のGitLab Dedicatedインスタンスのユーザーについては、この問題は自己管理されたインストールにのみ影響するため、対処の必要はありません。

すぐに安全なバージョンにアップグレードできない場合、GitLabはすべてのアカウントで2要素認証(2FA)を有効にし、SAML 2FAのバイパスオプションを “許可しない “に設定することを推奨している。

悪用の兆候

GitLabは、この欠陥が以前に悪用されたとは述べていないが、悪用が試みられた、あるいは成功した兆候を速報で提供しており、悪意のある行為者がすでにこの欠陥を攻撃に活用している可能性を示唆している。

悪用が試みられた、あるいは成功した兆候は以下の通り:

  • RubySaml::ValidationErrorに関連するエラー(試行失敗)。
  • 認証ログに新しい extern_uid 値や異常な extern_uid 値が含まれる(攻撃が成功した場合)。
  • SAML レスポンスに情報がない、あるいは正しくない。
  • 一人のユーザに対して複数の extern_uid 値がある (アカウント侵害の可能性を示す)。
  • ユーザの通常のアクセスパターンと比較して、見慣れない、または疑わしい IP アドレスからの SAML 認証。
Example log of successful exploitation
悪用に成功したログの例
ソースはこちら:GitLab

昨日、GitLab に連絡を取り、CVE-2024-45409 のアクティブな悪用を観測したかどうかについて尋ねたが、まだ回答待ちである。