
Clone2Leakは、脆弱性を悪用した攻撃手法の組み合わせによって実現できてしまう問題につけられた名称です。
Clone2LeakによってGitの資格情報を漏洩できてしまう可能性があります。
これは、Gitの利用を便利にするGit周辺ツールの脆弱性の組み合わせで実現できてしまいます。
どのような要素で構成されているのでしょうか。
- 復帰改行のsmuggling ( CVE-2025-23040、 CVE-2024-50338 )
脆弱なバージョンのGitHub DesktopとGit Credential Managerは、URL内の復帰改行 (\r) 文字を誤って解釈します。
%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以降、です。
それぞれ更新して最新の状態に保ちましょう。
今時のソフトウェアはよくできていて便利です。
よくできている便利なソフトウェアは、ユーザにとって使いやすくシンプルに見えます。
しかし、ユーザにとってシンプルなソフトウェアのその内部は、複雑な機構を実装することで利便性を実現しているともいえます。
複雑な機構は脆弱性となる危険性とセットとなってしまうと認識する必要があるでしょう。
この意味で、すべてのソフトウェアは脆弱性を含んだ状態になる危険性があると考えられます。
「このソフトウェアは脆弱性があるということだったから更新しよう」とか「このソフトウェアはあまり使っていないから更新しなくていいだろう」とか、そのように考えること自体が弱さにつながるように思えます。
導入されているものはすべて定期的に更新する、使っていないものはアンインストールする、ということが良いと思っていても、なかなか実践できていないという人もいるのではないでしょうか。
いまこそ、こういった考え方が必要になっていると思えます。
Clone2Leak: Your Git Credentials Belong To Us
https://flatt.tech/research/posts/clone2leak-your-git-credentials-belong-to-us/
この記事をシェア |
---|