GitLab是一个使用Ruby on Rails开发的开源应用程序。作为一个Git仓库管理平台,GitLab支持Web界面访问公开的或者私有的项目,在企业中得到广泛的应用。
2017年3月20日,GitLab官方发布了8.17.4、8.16.8和8.15.8版本(社区版和企业版),修复了多个高危漏洞。本次更新包含一个针对关键信息泄露漏洞的更新补丁,针对SSRF攻击的防护,以及针对可导致Atom源中私有邮件地址泄露漏洞的补丁,ElasticSearch中私有库数据泄露的补丁等,攻击者可以通过这些漏洞来获取相应的用户权限,危害严重。
漏洞详情见下文。
漏洞编号
CVE-2017-0882
漏洞名称
GitLab信息泄露高危漏洞
官方评级
高危
漏洞描述
该漏洞可导致拥有向其他用户发送issue或merge请求权限的攻击者获取到该用户的private token, email token, email地址和加密的OTP secret。利用该漏洞需要有Reporter级别的权限。通过Gitlab API和敏感信息,就能以该用户权限进行操作,如果目标用户是管理员则可能产生更大危害。
该漏洞来自用户对象序列化过程中的一个bug,这个问题自GitLab 8.7.0版本就开始出现。
漏洞利用条件和方式
黑客可以远程利用该漏洞执行代码。
漏洞影响范围
- 8.7.0至8.15.7
- 8.16.0至8.16.7
- 8.17.0至8.17.3
漏洞检测与确认
参照以下步骤检测该漏洞:
- 打开一个项目。
- 打开项目的issue跟踪器。
- 创建一个issue,将issue拥有权限分配给另一个用户。
- 查看返回的JSON,检查其中是否有敏感信息。
漏洞修复建议(或缓解措施)
升级 GitLab 至以下相应版本:8.15.8、8.16.8、8.17.4。
注意:在升级前请做好快照备份。
由于漏洞的性质,用户的token可能会缓存在代理或浏览器中。升级完毕后,建议所有系统管理员尽快重置所有用户的private token和email token。
情报来源
https://about.gitlab.com/2017/03/20/gitlab-8-dot-17-dot-4-security-release/