GitLab未授权访问漏洞可导致远程命令执行

原创 2016-11-09 09:27:32 839
摘要:GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。2016年11月3日,美国众测平台HackerOne公布了GitLab的目录遍历漏洞。漏洞的发现者为Jobert Abma,同时表示该漏洞可导致远程命令执行。漏洞预览从GitLab 8.9开始,GitLab允许用户导入或者导出他们的TAR文件。在8.13.

GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。2016年11月3日,美国众测平台HackerOne公布了GitLab的目录遍历漏洞。漏洞的发现者为Jobert Abma,同时表示该漏洞可导致远程命令执行。

漏洞预览

从GitLab 8.9开始,GitLab允许用户导入或者导出他们的TAR文件。在8.13.0版本之前,这个功能是只有管理员才可以使用。8.13.0版本之后,这个功能开放给的用户进行使用,只要有管理员许可。由于GitLab没有检查符号链接(symlinks),因此经过身份验证的用户可以检索任何GitLab账户中的文件,甚至是secret tokens等敏感信息。因为该漏洞可以访问到secret tokens,有了secret后,cookie可以在GitLab中被marshalled和resigned,所以该漏洞又可以导致远程命令执行。

漏洞编号

CVE-2016-9086。

影响版本

8.13.0至8.13.2

8.12.0至8.12.7

8.11.0至8.11.9

8.10.0至8.10.12

8.9.0至8.9.11

修复方式

GitLab官方强烈建议所有的用户请立刻对自己的GitLab进行升级。但是注意,版本号为8.9.0至8.9.11并没有相关补丁。如果没有办法进行升级,或者无修复补丁,可以采取以下方法修补该漏洞。

1.选择Admin Area

2.点击settings

3.在import sources下面关闭GitLab export这个选项

4.点击save

验证修复

1.首先在浏览器登陆任意GitLab账号

2.点击Projects

3.点击New Project创建一个项目

4.输入任意项目名称

5.如果里面没有出现GitLab export,那么就表示漏洞已经修复


发布手记

热门词条