注意まだ起きていない

Git の欠陥 CVE-2026-111760、再帰クローンでコード実行のおそれ

Git に、サブモジュール付きの悪意あるリポジトリを再帰クローンするとコードが動くおそれのある欠陥。修正版は 2.56.1 など。影響条件と確かめ方を整理する。

要点

  • 開発者の多くが使う Git に、悪意あるリポジトリを複製(クローン)しただけで、手元の PC でコードが動くおそれのある欠陥が見つかった。
  • 条件は、サブモジュール(別のリポジトリを部品として取り込む仕組み)ごと再帰的に複製することだ。
  • 修正版が出ている。GitHub の発表では、悪用が起きているとの記載はない。

何が起きたか

Git の開発側が修正版を公開し、GitHub が脆弱性の解説を出した。問題は CVE-2026-111760 だ。

GitHub によると、原因は Git のインデックス(管理中のファイルを記録する内部の台帳)の処理にある。数値を小さな型に収めるときに情報が切り捨てられ、とても長いファイルパスが検査をすり抜ける。検査では問題なしとされた名前と、実際にディスクへ書かれる名前が、食い違うわけだ。

GitHub の説明では、この食い違いを悪用すると、サブモジュールの .git ファイルをシンボリックリンク(別の場所を指す近道)にできる。リンク先に悪意ある設定やフック(特定の操作で自動実行される仕掛け)があれば、Git がその後の処理で実行してしまう。

つまり、見た目はふつうのリポジトリでも、git clone --recurse-submodules のような操作で、手元の PC 上でコードが動く可能性がある。GitHub は、再帰的に複製することが条件だと説明している。

GitHub のアドバイザリ(GHSA-vp2w-7xxj-jvxr)は、影響を受ける版を「全版」とのみ記している。修正版は、アドバイザリには書かれていない。発見者の名前と悪用の有無は、確かめた一次情報では示されていなかった。修正版が出た系列(下記)を使っているなら、当たる可能性があると考えておくのが安全だ。

同じ更新では、全部で六件の欠陥が直された。この欠陥のほかに五件ある。GitHub の解説によると、内容は次のとおりだ。

  • サーバーが示す HEAD(既定のブランチ)の名前を使った、書き込み先のすり抜け
  • GPG 署名を外すときのメモリ破損
  • 細工したバイナリパッチを適用するときの、範囲外の読み出し
  • 大きなマージでの、メモリ計算の桁あふれ
  • git fast-import の機能から、リポジトリの外のファイルを読まれるおそれ

最後の件では、危うい機能は、明示しないと使えなくなった。

日本の利用者への影響

GitHub の発表には、日本の組織や利用者への影響についての記述はない。日本での影響は、分からない。

GitHub.com と GitHub Enterprise Cloud は対応済みだ。GitHub Enterprise Server は修正版が出ている。The Hacker News の記事は、確認した時点で Git for Windows の修正版は未公開だったと伝えている。Windows の開発者は、公開状況を確認したい。

今すぐやること

  1. 自分の PC、ビルド用サーバー、CI(自動ビルドの仕組み)で使っている Git の版を確かめる。
  2. 修正版(2.56.1 など、各系列の修正版)に更新する。Git for Windows は、確認時点で修正版が未公開だった。
  3. 更新できない間は、GitHub の勧めに従う。信頼できるサーバーからだけ複製し、怪しいリポジトリはサブモジュールごと複製しない。ただし、GitHub も言うとおり、これは修正の代わりにはならない。
  4. 信頼できないリポジトリは、使い捨ての環境(仮想マシンやコンテナ)で開く。
  5. 社内の GitHub Enterprise Server を運用しているなら、修正済みの版に上げる。

背景

今回の発表は、一つの欠陥だけでなく、六件をまとめて直すものだ。CVE-2026-111760 はそのうち、リポジトリの複製という日常的な操作で当たりうる点が目立つ。

条件は限られる。悪意あるリポジトリを、再帰的に複製する必要がある。一方で、開発者は他人のコードを日常的に複製する。更新の遅れが残りやすい点には注意したい。

ほかの五件も、多くは「信頼できない相手のデータを扱う」場面で当たる。GitHub の解説に書かれた回避策も、どれも出どころの怪しいサーバー、パッチ、マージ対象を避けるという方向だ。

技術者向けの詳細
  • CVE-2026-111760: インデックス処理の整数切り詰め。長いパスが検査を通り、短い名前で書かれる。サブモジュールの .git がリンクに置き換わりうる。GHSA-vp2w-7xxj-jvxr。
  • 修正版: 2.56.1、2.55.1、2.54.1、2.53.1、2.52.1、2.51.3、2.50.2。
  • GitHub Enterprise Server: 3.19.15、3.20.11、3.21.9、3.22.4。
  • 同時に修正(五件): CVE-2026-113408(サーバーが示す HEAD 経由のパストラバーサル)、CVE-2026-114467(署名を外すときのスタック破損)、CVE-2026-114469(バイナリパッチ適用時の範囲外読み出し)、CVE-2026-105437(マージのメモリ計算の整数オーバーフロー、GitLab 採番)、CVE-2026-114466(fast-import)。
  • CVE-2026-114466 の対応で、git fast-import の rewrite-submodules-from、rewrite-submodules-to、export-pack-edges は、--allow-unsafe-features なしでは拒否される。
  • 版の確認: git --version
  • 影響版: GHSA-vp2w-7xxj-jvxr は「全版」と記載(修正版は未記載)。悪用状況は、確認した一次情報に記載がない。Git 本体の告知(lore.kernel.org)は取得できず、未確認。

出典

一次情報

報道

記事は、運営者が生成 AI を活用して作成し、内容を確かめたうえで公開しています。 誤りに気づいたら編集方針の連絡先へ。

次に読む

同じタグの記事