三款主流的源版本控制系统Git、Subversion (svn)、Mercurial系统源码,今日发布了更新补丁,修复了一个客户端代码执行漏洞。
该漏洞由GitLab的Brian Neel系统源码,Recurity Labs的Joan Schneeweiss和GitHub的Jeff King发现和报告的。
应用于Linux kernel、GitHub和Gitlab背后的开源版本控制系统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,用于修复该漏洞。
“此次更新修复了编号为CVE-2017-1000117的漏洞,与Subversion和Mercurial的维护者协调发布,共享了这个类似的问题。”Git维护者Junio Hamano在邮件列表中写道。
该漏洞需要结合一些社会工程学技巧才能更好的利用。
Git在其公告中警告:“恶意的攻击者可以向受害者发送一条精心构造的ssh:// URL链接,当受害者访问这条URL则会触发漏洞导致执行恶意代码”。
攻击者通过精心构造一个"ssh://..."URL链接发送给受害者,如果受害者访问了这个URL,则会导致恶意指令在客户端执行。
恶意URL可以放在项目的".gitmodules"文件中,受害者执行“git clone --recurse-submodules”则会触发该漏洞。
Apache Subversion(SVN)1.9.7修补了CVE-2017-9800问题,它与Git中修补的内容是类似的。
“在svn:externals和svn:sync-from-url中通过构造恶意svn+ssh URL则会导致客户端任意代码执行”在此次SVN更新中修复了该安全问题。
开源的Mercurial版本控制系统在4.3和4.2.3修复了该漏洞,漏洞编号为CVE-2017-1000115。