
ソースコードの変更履歴を管理するツール「Git(ギット)」に、悪意のあるリポジトリ(コードの保管場所)を複製(クローン)しただけで、攻撃者が用意したプログラムが自分のパソコン上で動いてしまうおそれのある欠陥が見つかりました。Gitの開発チームは今週、修正版となるGit 2.56.1を公開しています。
問題が起きるのは、リポジトリを「再帰的に」クローンしたとき、つまり本体だけでなく、その中に組み込まれた別のリポジトリ(サブモジュール)もまとめて取り込む操作をしたときです。git clone --recursiveのような使い方は、ライブラリなどを含むプロジェクトを一度に手元へ持ってくる際によく使われます。攻撃者は細工したリポジトリを公開しておき、誰かがそれを丸ごとクローンするのを待つだけで、相手のパソコンでコードを実行できる可能性があります。このように、離れた場所から他人の端末でプログラムを動かせてしまうセキュリティホールは「遠隔コード実行(RCE)」と呼ばれ、もっとも危険な種類のひとつとされています。
Gitはソフトウェア開発の現場でほぼ標準的に使われているツールで、プログラマーだけでなく、Webサイト制作者やデータ分析をする人、AIツールを試す人なども日常的に利用しています。GitHubなどで見つけたプロジェクトを気軽にクローンして試す、という行動そのものが攻撃の入り口になり得る点に注意が必要です。開発者のパソコンには、サーバーへの接続鍵やクラウドの認証情報が保存されていることも多く、乗っ取られた場合の被害は個人の端末にとどまらない可能性があります。
修正は最新のGit 2.56.1のほか、古い系列向けにも2.50.2、2.51.3、2.52.1、2.53.1、2.54.1、2.55.1として提供されています。git --versionでバージョンを確認し、該当する系列の修正版以降に更新しましょう。MacのXcode付属のGitや、Linuxディストリビューションのパッケージ、Git for Windows、各種開発ツールに同梱されたGitは、それぞれの配布元からの更新を待つ必要がある場合もあります。更新できるまでの間は、信頼できない出どころのリポジトリをサブモジュールごとクローンするのは避けるのが無難です。