漏洞概述
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
;对于以源码方式安装的用户,新建文件<gitlab_installation_dir>/lib/tasks/reset_token.rake
,并写入如下内容:(如有复制代码需求,请点击“官方升级公告”查看)
Omnibus
方式安装的用户执行以下命令:
源码方式安装的用户执行以下命令:
临时补丁
如果因为业务原因不能及时更新 GitLab,可使用下述方式进行临时修复:
将如下内容保存至 gitlab.patch
Omnibus
方式安装的用户执行以下命令:
源码方式安装的用户执行以下命令:
参考
来自:长亭科技订阅号