| Title | GitHubのcliにおける不正な認証に関する脆弱性 |
|---|---|
| Summary | GitHub CLI(gh)はGitHubの公式コマンドラインツールです。バージョン2.93.0以前では、gh attestation、gh release verify、およびgh release verify-assetコマンドを介してTUFリポジトリミラーへのAPIリクエストに誤って認証ヘッダーが含まれていました。このCLIは認証層を持つ共有HTTPクライアントを使用しており、トークンを自動的に送信リクエストに添付します。この層は正確なホスト検出ができず、ターゲットホストを誤って判別し、本来付与されるべきでないトークンを渡してしまいます。具体的には、ホスト正規化ロジックが*.github.comのサブドメインをすべてgithub.comに統合してしまうため、tuf-repo.github.com(GitHub APIエンドポイントではなくGitHub Pagesサイト)へのリクエストがgithub.comへのリクエストとして扱われ、ユーザーのgithub.comトークンが渡されてしまいます。github.comまたは既知のGHESインスタンスと一致しないホストに対しては、設定されていればGH_ENTERPRISE_TOKENが使用されます。gh attestation、gh release verify、gh release verify-assetコマンドは通常の動作の一部として複数の外部ホスト(tuf-repo.github.comやtuf-repo-cdn.sigstore.devからのTUFメタデータ、Azure Blob Storageからのアーティファクトバンドル)からデータを取得します。これらのリクエストは同じ認証済みHTTPクライアントを通過するため、トークンがすべてに送信されてしまいます。この脆弱性はバージョン2.93.0で修正されました。 |
| Possible impacts | ・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 ・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 ・当該ソフトウェアは停止しません。 |
| Solution | ベンダ情報を参照して適切な対策を実施してください。 |
| Publication Date | May 29, 2026, midnight |
| Registration Date | June 5, 2026, 10:45 a.m. |
| Last Update | June 5, 2026, 10:45 a.m. |
| CVSS3.0 : 緊急 | |
| Score | 9.1 |
|---|---|
| Vector | CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N |
| GitHub |
| cli 2.93.0 未満 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年06月05日] 掲載 |
June 5, 2026, 10:45 a.m. |
| Summary | GitHub CLI (gh) is GitHub’s official command line tool. Prior to 2.93.0, GitHub CLI incorrectly includes authorization header in API requests to TUF repository mirrors via gh attestation, gh release verify, and gh release verify-asset commands. The CLI uses a shared HTTP client with an authentication layer that automatically attaches tokens to outgoing requests. This layer lacks accurate host detection and can incorrectly attribute the target host, providing it with a token it should never receive. Specifically, the host normalization logic collapses any *.github.com subdomain to github.com, so a request to tuf-repo.github.com (a GitHub Pages site, not a GitHub API endpoint) is treated as a request to github.com and receives the user's github.com token. For hosts that don't match github.com or a known GHES instance at all, the resolver falls back to GH_ENTERPRISE_TOKEN if set. The gh attestation, gh release verify and gh release verify-asset commands fetch data from several external hosts as part of their normal operation (TUF metadata from tuf-repo.github.com and tuf-repo-cdn.sigstore.dev, artifact bundles from Azure Blob Storage). Because these requests go through the same authenticated HTTP client, the token is sent to all of them. This vulnerability is fixed in 2.93.0. |
|---|---|
| Publication Date | May 30, 2026, 1:16 a.m. |
| Registration Date | May 30, 2026, 4:15 a.m. |
| Last Update | June 4, 2026, 6:06 a.m. |
| Configuration1 | or higher | or less | more than | less than | |
| cpe:2.3:a:github:cli:*:*:*:*:*:*:*:* | 2.93.0 | ||||