GitLab于20日发布了8.17.4、8.16.8和8.15.8版本(社区版和企业版),修复多个高危漏洞,包含一个针对关键信息泄露漏洞的更新补丁,针对SSRF攻击的防护,以及针对可导致Atom源中私有邮件地址泄露漏洞的补丁,ElasticSearch中私有库数据泄露的补丁等。
GitLab特别在其更新日志中提到,在内部代码审核过程中,在GitLab Issue和Merge Request tracker中发现一个Critical级别的高危漏洞,并因此强烈建议受影响用户尽快升级。
漏洞编号
CVE-2017-0882
漏洞介绍
漏洞可导致拥有向其他用户发送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
升级后注意事项
由于漏洞的性质,用户的token可能会缓存在代理或浏览器中。因此建议站长们重置所有用户的private token和email token。
一次性密码(OTP)的secret也有可能因漏洞而泄露。这些secret都经过加密,需要密钥才能解密,并且不能在没有用户密码的情况下使用。尽管如此, 还是建议先将一次性密码功能关闭然后再重新打开,从而重置OTP secret。
重置用户Tokens步骤
使用Omnibus的用户将下面的源码保存到: /opt/gitlab/embedded/service/gitlab-rails/lib/tasks/reset_token.rake
使用源码安装的用户保存到: |