Gitの脆弱性について


こちらの記事に掲載されていた内容についてです。
セキュリティネクスト(2020年4月17日時点)

内容はと言いますと、「Gitに深刻な脆弱性が含まれていることがわかった」と。
アップデートがリリースされているみたい。

どういった脆弱性かと言いますと、

~記事より一部抜粋〜
credential helperにおいて改行を含む細工したURLを用いることで、Gitクライアントより認証情報を任意のホストに送信させることが可能となる脆弱性「CVE-2020-5260」が明らかとなった』

という内容。。。

変なURLを踏むと、Gitの認証情報を別のサーバーに取られちゃうみたい。。
恐怖に駆られたので調べを進めてみます。

CVE-2020-5260って何じゃ!

検索して確認してみます ↓
CVE/一般的な脆弱性と露出

Github公式

噛み砕くとバージョンによっては危ないらしい、、、

とりあえず回避策を取った上で、石橋をバスーカで破壊してからヘリコプターで渡る勢いで、
該当していないか自身のGitバージョンを確認してみる。

$ git --version 
git version 2.23.0

該当しちょる...

バージョンアップしなきゃ!(汗

ということで、
最新版をインストールしてHomebrewで管理

$ brew install git

Gitにパスを通していなければ

$ echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile

アップグレード

$ brew upgrade git
git version 2.23.0

あれ、更新されない。。

Gitの参照先を確認してみる

$ which git
/usr/local/bin/git

Homebrewからインストールしたパッケージも確認してみる

$ brew ls | grep git
git

ある。

HomebrewでインストールしたGitの本体がある場所も確認

brew list git
/usr/local/Cellar/git/2.26.2/bin/git

ある。

ん?エラー出てる?
もう一度実行して内容を確認してみる

$ brew upgrade git
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/git
Target /usr/local/bin/git
already exists. You may want to remove it:
  rm '/usr/local/bin/git'

To force the link and overwrite all conflicting files:
  brew link --overwrite git

おお、エラーあった。
/usr/local/bin/git に対してgitコマンドのシンボリックリンク(ショートカットのようなもの)を作成しようとしたけど対象がすでに存在するため、エラーになってシンボリックリンク作れなかったみたいでした。
削除するか上書きを選べと。。

『リンクを強制してすべての競合するファイルを上書きするには「brew link --overwrite git」をしろ』とあるので上書きしてみましょう。

オーバーライトを実施してみる

$ brew link --overwrite git

その後、再度バージョン確認(どきどき。。)

git version 2.26.1

おお!最新にアップグレードされました
とりあえず安心