GitHubは1月16日(米国時間)、「Rotating credentials for GitHub.com and new GHES patches - The GitHub Blog」において、運用コンテナ内の認証情報へのアクセスを可能にする脆弱性対策の一環として影響を受けるすべての資格情報をローテーションしたと伝えた。GitHubが所有する公開鍵をハードコーディングまたはキャッシュしている場合は、システムが新しい公開鍵で動作するか確認してほしいと呼びかけている。

  • Rotating credentials for GitHub.com and new GHES patches - The GitHub Blog

    Rotating credentials for GitHub.com and new GHES patches - The GitHub Blog

GitHub.comが抱えている脆弱性の概要

今回修正された脆弱性「CVE-2024-0200」はバグ報奨金プログラムにより報告されたもので、悪用されると運用コンテナ内の認証情報にアクセスできるとされる。この脆弱性は「GitHub.com」と「GitHub Enterprise Server(GHES)」に影響する。脆弱性を悪用するには組織所有者の権限(Organization owner role)を持つユーザがGitHub Enterprise Serverインスタンスのアカウントにログインする必要があるため、悪用は難しいとみられている。

この脆弱性はGitHub Enterprise Serverバージョン3.12以前のすべてのバージョンに影響があり、次のバージョンで修正された。

  • GitHub Enterprise Serverバージョン3.8.13
  • GitHub Enterprise Serverバージョン3.9.8
  • GitHub Enterprise Serverバージョン3.10.5
  • GitHub Enterprise Serverバージョン3.11.3

影響と対策

GitHubはこのローテーション作業により、2023年12月27日から29日にかけて多数のサービス中断が発生したことを公表した。今後は同様のダウンタイムを軽減するために、認証情報のローテーション手順を改善するとしている。

GitHubによると、この認証情報のローテーション作業の大部分は通常業務の一部であり、通常は顧客に影響しないとしている。ただし、GitHub署名付きコミットをGitHubの外部で検証している場合、または署名付きコミットが有効になっているGitHub Codespacesが存在し、CodespacesからGitHubにコミットをプッシュしていない場合は影響を受ける可能性がある。

GitHub Enterprise Serverを含め、GitHub.comのコミットをGitHub.com以外で検証する場合は、新しい「公開鍵」をインポートする必要がある。このようなユーザはGitHubからの最新データを利用するために、定期的に公開鍵をインポートすることが強く推奨されている。

署名付きコミットを有効にしていてGitHub Codespacesからコミットをプッシュしていない場合は、2024年1月16日以前に作成したすべてのコミットを2024年1月23日までにプッシュする必要がある。これ以降はgit commitの「--amend」オプションや同等の作業を実行するか、再署名しない限り古いコミットは検証済みと表示されなくなる。ただし、自身で用意したGPG鍵を使ってコミットする場合はこの影響を受けない。

古い公開鍵をハードコーディングしていたりキャッシュしたりしている場合は、新しい秘密鍵をGitHubに送信するときに「Provided key #{key_identifier} is not the latest version available. Call GET /secrets/public-key and resign the data using the latest key.」といった内容のエラーメッセージを受け取る可能性がある。この場合はGitHubのAPIから新しい公開鍵を取得する必要がある。

GitHubは今回のアップデートで「CVE-2024-0507」として追跡されるManagement Consoleの脆弱性についても修正している。GitHub Enterprise Serverを運用している管理者は、影響の有無を確認し、必要があればアップデートすることが望まれている。