Blog

2020.04.15

Gitの脆弱性( CVE-2020-5260 )を調べたメモ

社内システムの管理をしつつID関係が好きなエンジニアの名古屋( @ayokura )です。

さて、今日は4月のPatch Tuesday1 ですね。

今回はそんな今日出た、CVE-2020-5260 というGitの脆弱性について、社内に告知するにあたり、軽く調査した内容をブログ向けに修正して出します。
(速報的なものです。ミスがあったらご指摘いただけると幸いです。)

Gitのメーリングリスト上でのリリースアナウンス にもあるようにGitのアップデートが本日リリースされました。
これで修正されている脆弱性については、報告者の所属する、Google Project ZeroのIssueを見るのが分かりやすいです。

大雑把な理解ですが、この脆弱性では、gitがcredential-helperと通信する時の改行処理に問題があり、それによってhelperに記憶された、任意のドメインのユーザー名とパスワードを攻撃者のサーバーに送ることが可能になります。
なお、攻撃には、gitからの細工されたURLへのアクセスが必要です(これにはたとえばcloneのURLを工夫したり、submoduleのURLを工夫したりする方法が考えられますがこれに限りません)

credential helperというのは、Gitのリポジトリに接続するときに、ユーザー名とパスワードが必要である場合に使うものです。
例えば、一時的にキャッシュしておくcredential-cacheや、ファイルに保存するcredential-storeが付属しています。
そして、macOSのkeychainやGNOMEのkeyring、Windowsの資格情報マネージャーを利用したhelperも存在し、こちらを利用している人が多いと思います。
(インストール方法によっては、インストール時にデフォルトで有効になっている場合も多いです)

そのため、鍵以外の認証方法でgitをつかったことがある上に、helperでパスワードを保存しているケースでは影響がある人がほとんどでしょう。
一方で鍵のみでの利用であれば影響を受けない可能性が高いような脆弱性と思われます。

弊社では、ここまでの情報より、社内向けにASAPの対応が必要なものとしてアナウンスすることにしました。

なお、以下のいずれかのバージョンに更新されていれば安全です。
v2.26.1, v2.25.3, v2.24.2, v2.23.2, v2.22.3, v2.21.2, v2.20.3, v2.19.4, v2.18.3, v2.17.4

Ubuntuにおいてはこちらのページの記述に従って、以下のいずれかのバージョンが安全なバージョンです。

  • 16.04の場合 1:2.7.4-0ubuntu1.8
  • 18.04の場合 1:2.17.1-1ubuntu0.6
  • 19.10の場合 1:2.20.1-2ubuntu1.19.10.2

ちなみに今日はそのほかに、WindowsやGitLabにおいてもセキュリティアップデートがリリースされています。

  1. 第二火曜日の次の日(アメリカでの第二火曜日)。通常は第二水曜日になるが、今月みたいに水曜日始まりの月だと第3水曜日になる。ちなみに、Googleカレンダーの予定はタイムゾーンを持てるので、アメリカのタイムゾーンで火曜日に予定を入れておくと便利。