Git logo

Clone2Leak」と名付けられた3つの異なる、しかし関連性のある一連の攻撃は、Gitとそのクレデンシャル・ヘルパーが認証リクエストを処理する方法を悪用することで、クレデンシャルを漏洩させる可能性がある。

この攻撃は、GitHub Desktop、Git LFS、GitHub CLI/コードスペース、Git Credential Managerのパスワードやアクセストークンを危険にさらす可能性がある。

Clone2Leak」を可能にする欠陥は、GMO Flatt Securityの日本人研究者RyotaK氏によって発見され、同氏は影響を受けるプロジェクトに責任を持って報告した。

すべての欠陥に対処するセキュリティアップデートが提供されており、影響を受けたユーザーは、秘密が漏れるリスクを軽減するために、安全なリリースを実行していることを確認するよう促されている。

Clone2Leak攻撃

RyotaKによって発見された欠陥はいずれも、クレデンシャル・ヘルパーに送られた認証リクエストの不適切な解析に関連しており、攻撃者はGitを騙して保存されているクレデンシャルを悪意のあるサーバーに漏らすことができます。

クレデンシャル・ヘルパーは、Gitがリモート・リポジトリとやりとりする際の認証情報を保存したり取得したりするためのツールで、Gitの操作のたびに認証情報を繰り返し入力するのを避けるのに役立ちます。

攻撃者は、ユーザーが悪意のあるリポジトリをクローンしたりやり取りしたりするときに、Gitを騙して保存されている認証情報を漏らすことができます。

以下は、様々な欠陥を悪用したClone2Leak攻撃の3つの方法の概要です:

  • キャリッジリターンの密輸 (CVE-2025-23040およびCVE-2024-50338)– GitHub Desktop と Git Credential Manager は、URL 内のキャリッジリターン文字を誤って解釈します。0D を含む悪意のあるサブモジュール URL は、クレデンシャル・ヘルパーを騙して GitHub クレデンシャルを意図したホストではなく攻撃者が管理するサーバーに送信させます。
  • 改行インジェクション (CVE-2024-53263)– Git LFS は、.lfsconfig ファイルで改行 (Ⅾn) 文字を不適切に許可しており、Git のセキュリティーをバイパスしています。攻撃者は、Gitが正しいサーバーではなく悪意のあるサーバーにGitHubのクレデンシャルを返すように、クレデンシャルリクエストを変更することができます。
  • クレデンシャル検索のロジック欠陥 (CVE-2024-53858)– GitHub CLI と GitHub Codespaces には、認証トークンを意図しないホストに送信する、過度に寛容なクレデンシャルヘルパーがありました。攻撃者は、ユーザーに悪意のあるリポジトリをCodespaces内にクローンさせることで、GitHubのアクセストークンを盗むことができました。

現在、上記の脆弱性はすべて修正されていますが、ユーザーはツールを確実にアップデートし、クレデンシャルの設定を監査し、リポジトリをクローンする際には注意する必要があります。

アップグレードすべき安全なバージョンは、GitHub Desktop 3.4.12以降、Git Credential Manager 2.6.1以降、Git LFS 3.6.1以降、gh cli 2.63.0以降です。

さらに、Gitの「credential.protectProtocol」を有効にして、クレデンシャル・スマグリング攻撃に対する防御を強化することが推奨される。

Flatt Securityのレポートでは、野放し状態での積極的な悪用については触れていないが、詳細が公開されたことで、攻撃のリスクは高まっている。