【高危】- 版本控制系统客户端任意代码执行漏洞(CVE-2017-1000117)
■ 漏洞描述
三款主流的源版本控制系统Git、Subversion (svn)、CVS、Mercurial,今日发布了更新补丁,修复了一个客户端代码执行漏洞。该漏洞由GitLab的Brian Neel,Recurity Labs的Joan Schneeweiss和GitHub的Jeff King发现和报告的。该漏洞主要由于SSH链接在hostname部分,若是用“-”开头,那么会导致ssh命令将hostname误认为这是一个选项。因此,我们可以利用“-oProxyCommand”选项来达到命令执行的目的。可以配置CVS通过SSH访问远程仓库,比如设置CVS_RSH=ssh,这样的话,只要指定以-o开头的hostname就可以触发
 
■ 影响范围
Git 2.14.1以前的版本。
 
■ 漏洞修复
1. 官方更新公告(非正式版本呢,需自行更新)
https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1466490.html
2. 目前各个发行版源还未更新修复版本v2.14.1,用户可以在 https://github.com/gitster/git上自行下载编译。
3. 未更新的用户,在clone项目的时候,请尽量注意 .gitmodules 等文件中有无恶意链接来预防安全问题。
 
■ 漏洞详情
http://blog.recurity-labs.com/2017-08-10/scm-vulns。
https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1466490.html。
http://seclists.org/oss-sec/2017/q3/280。