Mac上基于Homebrew升级Git

最近Git被安全界爆出存在高危漏洞一枚,波及了Windows以及*nix平台上运行的绝大多数版本的Git客户端,github针对此事反应迅速,并且很快发布了官方公告,公告中针对情况进行了简单说明,并明确了几个经过Git核心团队修复解决存在漏洞的Git版本:

The Git core team has announced maintenance releases for all current versions of Git (v1.8.5.6, v1.9.5, v2.0.5, v2.1.4, and v2.2.1).

今天上午看到国内安全界大牛黑哥@hi_heige也在微博发表了测试本地Git客户端是否存在漏洞的方法,以及针对Mac平台进行Git升级的操作流程:

黑哥的微博

测试本机Git是否受漏洞影响:

1
$ git clone http://gitcasefail.googlecode.com/svn/trunk/repo/

如若执行命令后弹出计算器界面则说明存在漏洞。@hi_heige针对Mac平台给出的升级解决方案操作如下:

1
$ sudo brew install git
1
2
3
$ cd /usr/bin
$ sudo mkdir old-git
$ sudo mv git* old-git

解释一下,其实Mac OS X系统中默认都已经在Command-Line-Tool中安装了Git,系统默认调用的依旧还是比较旧的版本,原因是已经通过XCode等方式安装过Git,且它们的路径优先级较高。要检查系统默认调用的是否是通过Homebrew安装的最新版本也很简单,Homebrew安装的Git会被软连接到/usr/local/bin目录下,所以如果使用which git看到的结果不是/usr/local/bin/git,那么我们这时就需要通过上面的方法修改以便能够默认使用自行安装版本的Git。

按着上边的指导在Mac OS X下使用Homebrew(或其它方式)安装最新版本的Git后,执行git --version却发现显示出来的还是未升级的Git版本号,以为Homebrew安装失败,重新sudo brew install git,Homebrew提示:

1
Git already installed, just not linked

于是我们还要进行对新安装的Git进行brew link

1
$ sudo brew link --overwrite git