2024/1/11に発表されたGitLabの深刻な脆弱性に対するセキュリティリリース情報を本サイトでもご案内いたします。
【利用種別においての影響】
SaaS版:GitLab.comにおいては、すでにGitlab社により脆弱性修正されており、被害は報告されていません。
Self-managed版: Self-managed版ご利用のお客様(特にインターネットからのアクセスが可能な状態の環境)は、できるだけ早く最新バージョンにアップグレードすることを強くお勧めします。まだアップグレードしていない場合は、最近発見された DB 移行の問題に対する追加の修正を含む新しいパッチがあることに注意してください。移行の問題を回避するには、16.7.3、16.6.5、16.5.7 以降にアップグレードしてください。
また、2要素認証(2FA)をすべてのアカウントへ実施している場合は深刻なアカウント乗っ取りの脆弱性は回避できているとのことです。
詳細は以下セキュリティリリース情報(引用・日本語翻訳)をご参照ください。
本情報アップデート通知を受け取るためには本記事下段「セキュリティ リリースのブログ通知を受信箱に受け取るには」から設定することをお勧めします。
GitLab クリティカル セキュリティ リリース: 16.7.2、16.6.4、16.5.6
2024 年 1 月 11 日 –
GitLab Critical Security リリースの詳細については、GitLab Community Edition (CE) および Enterprise Edition (EE) の 16.7.2、16.6.4、16.5.6 をご覧ください。
これらのバージョンには重要なセキュリティ修正が含まれているため、すべての GitLab インストールをこれらのバージョンのいずれかに直ちにアップグレードすることを強くお勧めします。GitLab.com はすでにパッチ適用済みバージョンを実行しています。
GitLab は、セキュリティ リリースでセキュリティ脆弱性の修正をリリースします。詳細については、セキュリティ FAQをご覧ください。通常のブログ投稿とセキュリティ リリースのブログ投稿はすべてここでご覧いただけます。さらに、各脆弱性の詳細を説明する問題は、 パッチが適用されたリリースから 30 日後に問題トラッカーで公開されます。
私たちは、顧客に公開される GitLab のあらゆる側面、または顧客データをホストするあらゆる側面が最高のセキュリティ基準に保たれるようにすることに専念しています。良好なセキュリティ衛生状態を維持する一環として、すべてのお客様がサポートされているバージョンの最新のセキュリティ リリースにアップグレードすることを強くお勧めします。GitLab インスタンスを保護するためのベスト プラクティスの詳細については、ブログ投稿をご覧ください 。
推奨される行動
以下に説明する問題の影響を受けるバージョンを実行しているすべてのインストールは、できるだけ早く最新バージョンにアップグレードすることを強くお勧めします。まだアップグレードしていない場合は、最近発見された DB 移行の問題に対する追加の修正を含む新しいパッチがあることに注意してください。移行の問題を回避するには、16.7.3、16.6.5、16.5.7 以降にアップグレードしてください。
製品の特定のデプロイメント タイプ (オムニバス、ソース コード、ヘルム チャートなど) が言及されていない場合、これはすべてのタイプが影響を受けることを意味します。
修正内容の表
タイトル | 重大度 |
---|---|
ユーザーの操作を必要としないパスワード リセットによるアカウント乗っ取り | 致命的 |
CODEOWNERS 承認の削除をバイパスする | 高い |
攻撃者は Slack/Mattermost 統合を悪用し、別のユーザーとしてスラッシュ コマンドを実行する可能性があります | 高い |
ワークスペースは別のルート名前空間の下に作成可能 | 中くらい |
コミット署名の検証で署名後のヘッダーが無視される | 低い |
ユーザー操作なしのパスワード リセットによるアカウント乗っ取り
GitLab CE/EE で問題が発見され、16.1 より前の 16.1.6、16.2 より前の 16.2.9、16.3 より前の 16.3.7、16.4 より前の 16.4.5、16.5 より前の 16.5.6、16.6 のすべてのバージョンに影響します。 16.6.4 より前、および 16.7.2 より前の 16.7 では、ユーザー アカウントのパスワード リセット電子メールが未検証の電子メール アドレスに配信される可能性がありました。これは重大度が重大な問題 ( CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
、10.0) です。最新リリースでは軽減されており、CVE-2023-7028が割り当てられています。
このセキュリティ修正は、GitLab バージョン 16.5.6、16.6.4、および 16.7.2 に加えて、16.1.6、16.2.9、16.3.7、および 16.4.5 にもバックポートされました。
HackerOne バグ報奨金プログラムを通じてこの脆弱性を報告してくれたasterion04に感謝します。
よくある質問
GitLab インスタンスが侵害されていると思われる場合はどうすればよいですか?
インシデント対応計画に従うことに加えて、
- クリティカル セキュリティ リリースを GitLab インスタンスに適用する
- すべての GitLab アカウントに対して2 要素認証(2FA)を有効にする
- GitLab に保存されているすべてのシークレットをローテーションします。
- GitLab アカウントのパスワードを含むすべての認証情報
- APIトークン
- あらゆる証明書
- その他の秘密
- こちらのインシデント対応ガイドの手順に従ってください
この影響を受けるのは誰ですか?
次の影響を受けるバージョンを使用する GitLab セルフマネージド インスタンス:
- 16.1~16.1.5
- 16.2~16.2.8
- 16.3~16.3.6
- 16.4~16.4.4
- 16.5~16.5.5
- 16.6~16.6.3
- 16.7~16.7.1
これらのバージョンでは、すべての認証メカニズムが影響を受けます。さらに、2 要素認証を有効にしているユーザーは、パスワードのリセットに対して脆弱ですが、ログインには 2 番目の認証要素が必要であるため、アカウントの乗っ取りに対しては脆弱です。
どのような行動を取ればよいでしょうか?
- アップグレード パスに従って、セルフマネージド インスタンスをパッチ適用済みのバージョンにアップグレードします。不安定になる可能性があるため、アップグレードの停止をスキップしないでください。
- 注: 16.3.x は、GitLab アップグレード パスで必須のアップグレード停止です。
- すべての GitLab アカウント、特に昇格された権限を持つユーザー (管理者アカウントなど) に対して2 要素認証(2FA)を有効にします。
脆弱性は解決されましたか?
この脆弱性は、このセキュリティ リリースで解決されました。
この脆弱性により実際に侵害されたアカウントはありましたか?
GitLab.com や GitLab D dedicated インスタンスなど、GitLab が管理するプラットフォームでは、この脆弱性の悪用は検出されていません。自己管理のお客様は、ログを確認して、この脆弱性を悪用する試みの可能性を確認できます。
- gitlab-rails/production_json.log で、複数の
/users/password
電子メール アドレスを含む JSON 配列で構成される params.value.email を含むパスへの HTTP リクエストを確認します。 - gitlab-rails/audit_json.log で、複数の
meta.caller_id
電子メール アドレスを含む JSON 配列を含むエントリとPasswordsController#create
、target_details
JSON 配列で構成されるエントリを確認します。
脆弱性はいつ導入されましたか?
この脆弱性は、2023 年 5 月 1 日に 16.1.0 で導入されました。
脆弱性はどのようにして発見されたのでしょうか?
この脆弱性は、バグ報奨金プログラムを通じて責任を持って報告されました。
このような脆弱性を防ぐためにどのようなセキュリティ対策を講じていますか?
- 同様の脆弱性を防ぐために、パスワード リセット ロジック全体、特に提供された電子メールの処理、電子メールの生成、コンテンツの処理を検証する複数のテストを追加しました。
- セキュリティ レビューは、開発者が完了する必要がある MR チェックリストの必須の部分です。
- 当社には、変更に対して複数の承認を必要とするコードレビュープロセスがあります。
- 私たちは、今回のような脆弱性を防ぐ方法を含む、フォローアップ措置の包括的なリストを決定するために、根本原因分析プロセスを開始しました。
- 弊社には2 要素認証機能があり、有効にするとこのような脆弱性を防ぐことができます。現在、すべての GitLab チーム メンバーに対して有効になっています。
- 今後この分野で働くエンジニアが実装とセキュリティに関する考慮事項を確実に利用できるように、コード ベースに追加の開発者ドキュメントを追加しました。
- リセット リンクに対する複数の電子メール アドレスの送信をサポートしないように実装ロジックを修正しました。
どうしてそうなった?
16.1.0 では、ユーザーがセカンダリ電子メール アドレスを使用してパスワードをリセットできるように変更されました。この脆弱性は、電子メール検証プロセスのバグの結果です。このバグはこのパッチで修正されており、前述のように、お客様を保護するためにいくつかの予防的セキュリティ対策を実装しました。
Okta や Azure AD などの ID プロバイダーを使用している場合、これは影響しますか?
SSO を強制していないユーザーは脆弱です。構成で SSO オプションに加えてユーザー名とパスワードの使用が許可されている場合は、影響を受けます。サインイン制限設定を通じてすべてのパスワード認証オプションを無効にすると、パスワード リセットを実行できなくなるため、外部 ID プロバイダーが構成されている自己管理型の顧客の脆弱性が軽減されます。
2FA を適用している場合、この脆弱性の影響を受けますか?
2FA が有効になっている場合、攻撃者はアカウントを乗っ取ることができません。パスワードをリセットできる場合もありますが、第 2 要素認証方法にはアクセスできなくなります。突然ログインにリダイレクトされた場合、またはリセットメールがトリガーされた場合は、パスワードをリセットしてください。
CODEOWNERS 承認の削除をバイパスする
GitLab で問題が発見されました。15.3 以降の 16.5.5 より前のすべてのバージョン、16.6 以降の 16.6.4 より前のすべてのバージョン、16.7 以降 16.7.2 より前のすべてのバージョンに影響します。必要な CODEOWNERS の承認は、以前に承認されたマージ リクエストに変更を追加することによって回避される可能性があります。これは重大度の高い問題です ( CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:H/A:N
、7.6)。最新リリースでは軽減されており、CVE-2023-4812が割り当てられています。
HackerOne バグ報奨金プログラムを通じてこの脆弱性を報告してくださったali_shehabに感謝します。
攻撃者は Slack/Mattermost 統合を悪用し、別のユーザーとしてスラッシュ コマンドを実行する可能性があります
16.5.6 より前の 8.13 以降のすべてのバージョン、16.6.4 より前の 16.6 以降のすべてのバージョン、16.7.2 より前の 16.7 以降のすべてのバージョンの GitLab CE/EE の認証チェックが正しくないため、ユーザーは Slack/Mattermost 統合を悪用して実行できます。別のユーザーとしてスラッシュ コマンドを実行します。これは重大度の高い問題です ( CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:N
、7.3)。最新リリースでは軽減されており、CVE-2023-5356が割り当てられています。
HackerOne バグ報奨金プログラムを通じてこの脆弱性を報告してくださったyvvdwfに感謝します。
ワークスペースは別のルート名前空間の下に作成可能
GitLab Remote Development には不適切なアクセス制御の脆弱性が存在し、16.5.6 より前のすべてのバージョン、16.6.4 より前の 16.6、および 16.7.2 より前の 16.7 に影響します。この条件により、攻撃者はあるグループ内に、別のグループのエージェントに関連付けられたワークスペースを作成することができます。これは重大度が中程度の問題です ( CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:H/I:L/A:N
、6.6)。最新リリースでは軽減されており、CVE-2023-6955が割り当てられています。
この脆弱性は、GitLab チーム メンバー@j.setoによって内部的に発見されました。
コミット署名の検証で署名後のヘッダーが無視される
GitLab CE/EE で、16.5.6 より前の 12.2、16.6.4 より前の 16.6、16.7.2 より前の 16.7 のすべてのバージョンに影響を与える問題が発見され、攻撃者が署名付きコミットのメタデータを変更する可能性があります。これは重大度の低い問題です ( CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N
、3.5)。最新リリースでは軽減されており、CVE-2023-2030が割り当てられています。
HackerOne バグ報奨金プログラムを通じてこの脆弱性を報告してくださったLotofloopsに感謝します。
非セキュリティパッチ
16.7.2
- バックポート 16.7: アセットからモックされたタグを削除する
- バックポート: HookData::ProjectBuilder でのデータベースのクロス結合の解決
- 順序に依存する Sidekiq 構成仕様のエラーを修正
- 不安定性に対して内部イベント CLI 仕様を強化する
- デフォルトで Apollo Board を有効にする
- バックポート「セルフホストに不足している ci_sources_pipelines インデックスを追加」 16.7
- ファラデー関連の宝石を一時的にピン留めする
16.6.4
- ブランチ「ci-clean-mocked-tags」を「16-6-stable」にマージします
- バックポート 16.6 : アセットからモックされたタグを削除する
- プロジェクトのリポジトリ インデックスを使用する Backport-Search::IndexRepairService
- !140718 を 16.6 安定ブランチにバックポート
- ファラデー関連の宝石を一時的にピン留めする
16.5.6
- CI: アセットからモック化されたタグを削除し、アーティファクトを汚染しないようにします (16.5 にバックポート)
- バックポート 16.5 : アセットからモック化されたタグを削除する
- バックポート 16.5: ログレベル設定が空の場合の、おしゃべりなloopWriterログを修正
- バンプアリュールレポートとバックポートクリックハウスのバージョンを 16.5 に修正
- ファラデー関連の宝石を一時的にピン留めする
更新中
GitLab を更新するには、「更新」ページを参照してください。Gitlab Runner を更新するには、「ランナーの更新」ページを参照してください。
セキュリティリリース通知を受け取る
セキュリティ リリースのブログ通知を受信箱に受け取るには、お問い合わせページにアクセスしてください。RSS 経由でリリース通知を受信するには、セキュリティ リリース RSS フィードまたはすべてのリリースの RSS フィードを購読してください。
本内容は、GitLab社セキュリティアナウンス から引用しております。
https://about.gitlab.com/releases/2024/01/11/critical-security-release-gitlab-16-7-2-released/
弊社パートナー様はNetworld Dev Portal アカウント(無料)登録いただくと、GitLabパートナー制度や DevSecOps関連提案資料などのパートナー限定コンテンツがご覧いただけます。
DevSecOps全般、GitLab製品または本サイトについては以下よりお問い合わせ下さい。