发布于 2017-03-21 07:25:39 | 289 次阅读 | 评论: 0 | 来源: 网友投递
GitLab项目管理和代码托管平台
GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
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
方式安装的用户执行以下命令:
源码方式安装的用户执行以下命令: