漏洞概述
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,并寫入如下内容:(如有複制代碼需求,請點選“官方更新公告”檢視)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL0EzYyEjNmZTNyczNiZ2NyEDMxUTYwUmZjhzMilDNiZzMzkTMlFjM48CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
omnibus 方式安裝的使用者執行以下指令:
源碼方式安裝的使用者執行以下指令:
臨時更新檔
如果因為業務原因不能及時更新 gitlab,可使用下述方式進行臨時修複:
将如下内容儲存至 gitlab.patch