三款主要的开源版本控制系统都面临险境:存在可能让攻击者任意执行代码的漏洞。
全球各地的开发人员可要注意了:你们必须立即更新版本控制系统,否则就有可能面临这种风险:因一个已知漏洞而被人钻空子。
三种主要的开源版本控制系统:Git、Subversion(svn)和Mercurial近日都纷纷发布了更新版,针对一个重大的安全漏洞打上补丁,该漏洞有可能让攻击者能够执行任意代码。安全漏洞是由GitLab的布赖恩·尼尔(Brian Neel)、Recurity Labs的乔恩·施奈韦兹(Joern Schneeweisz)和GitHub的杰夫·金(Jeff King)发现并报告的。
Git广泛用于开源开发,是Linux内核背后的版本控制系统。Git方面已发布了多个版本,以堵住新漏洞。今天发布的有Git v2.14.1、2.7.6、v2.8.6、v2.9.5、v2.10.4、v2.11.3、v2.12.4和v2.13.5,打上了补丁,以确保安全。
Git维护人员朱尼尔·哈马诺(Junio Hamano)在邮件列表消息中写道:“这些版本含有针对CVE-2017-1000117的安全补丁,是与存在类似问题的Subversion和Mercurial协同发布的。CVE-2017-9800和CVE-2017-1000116是分别为这些系统的类似问题而取的名字,这些问题如今在协同发布的各自版本中已得到了解决。”
上述安全漏洞需要一点社会工程学伎俩才能得逞。
Git在安全公告中提醒:“恶意的第三方可以向未起疑心的受害者发送做过手脚的‘ssh://…’URL;一旦试图访问该URL,就会导致驻留在受害者机器上的任何程序被执行。”
ApacheSubversion(SVN)1.9.7更新版针对CVE-2017-9800问题打上了问题,这个问题的性质类似Git打上补丁的那个问题。
“通过svn:externals和svn:sync-from-url中恶意的svn+ssh URL,在客户端上任意执行代码”,这正是新的SVN更新版中打上补丁的安全问题。
开源Mercurial版本控制项目推出了新的4.3和4.2.3更新版,以消除这个问题。Mercurial将该漏洞标为CVE-2017-1000115。
Mercurial的安全公告提醒:“Mercurial并不确保传递给ssh的主机名干净,从而让攻击者得以通过指定以-oProxyCommand开始的主机名,实施shell注入攻击。”
相关阅读: