漏洞概述
GitLab 是一个使用 Ruby on Rails 开发的开源应用程序,实现了一个 Git 仓库管理平台,可通过 Web 界面进行访问公开的或者私有的项目。在企业中得到的广泛的使用。近日研究者发现在其多个版本中存在用户多项敏感信息泄漏漏洞,攻击者可以通过这些漏洞来获取相应的用户权限,危害严重。
漏洞详情
当修改任务的分配者信息的时候,API 将返回该用户的个人信息详情,其中包括了该用户的authentication_token、encrypted_otp_secret、otp_backup_codes等敏感信息。
使用这些敏感信息结合 Gitlab API 可以实现使用该用户的身份和权限操作 GitLab。如果用户为管理员权限,可能会造成更大的危害。
影响版本
GitLab 用户authentication_token等敏感信息泄露漏洞分析
以下版本都受该漏洞影响:
8.7.0 ~ 8.15.7
8.16.0 ~ 8.16.7
8.17.0 ~ 8.17.3
解决方案
更新 GitLab
升级 GitLab 至以下相应版本:
8.15.8
8.16.8
8.17.4
升级完成后需要使用下述方式来重置所有用户的 private token 和 email token。
对于以 Omnibus 方式安装的用户,新建文件/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/reset_token.rake;对于以源码方式安装的用户,新建文件/lib/tasks/reset_token.rake,并写入如下内容:(如有复制代码需求,请点击“官方升级公告”查看)
![821e19336b49b38cfe0a510127fb77256f612c14](https://i-blog.csdnimg.cn/blog_migrate/b8fd9b7b3956d86874d5e1c0cb065e89.png)
Omnibus 方式安装的用户执行以下命令:
![9e04bd57dfd1f80cb83771c58be06211896f5204](https://i-blog.csdnimg.cn/blog_migrate/041885a1314f1c09f10da5bcef050b05.png)
源码方式安装的用户执行以下命令:
![efde7f4cc5c3698152ecce448528ccf0b2c76c46](https://i-blog.csdnimg.cn/blog_migrate/a1159da832beff46e5ff081f2f29b50b.png)
临时补丁
如果因为业务原因不能及时更新 GitLab,可使用下述方式进行临时修复:
将如下内容保存至 gitlab.patch
![e5d0a226a1532a0c74a5cca5534aac66d38bb82b](https://i-blog.csdnimg.cn/blog_migrate/53a2b6e8b3ce4b67c1408a6ae6cb1408.png)
![56f427f67770e3dc0a043b36973202a165a71a65](https://i-blog.csdnimg.cn/blog_migrate/e72d4aa041e9168562314aacc6c2099a.png)
本文来自开源中国社区 [http://www.oschina.net]