GitLab是一個利用Ruby on Rails開發(fā)的開源應(yīng)用程序,實現(xiàn)一個自托管的Git項目倉庫,可通過Web界面進(jìn)行訪問公開的或者私人項目。2016年11月3日,美國眾測平臺HackerOne公布了GitLab的目錄遍歷漏洞。漏洞的發(fā)現(xiàn)者為Jobert Abma,同時表示該漏洞可導(dǎo)致遠(yuǎn)程命令執(zhí)行。
漏洞預(yù)覽
從GitLab 8.9開始,GitLab允許用戶導(dǎo)入或者導(dǎo)出他們的TAR文件。在8.13.0版本之前,這個功能是只有管理員才可以使用。8.13.0版本之后,這個功能開放給的用戶進(jìn)行使用,只要有管理員許可。由于GitLab沒有檢查符號鏈接(symlinks),因此經(jīng)過身份驗證的用戶可以檢索任何GitLab賬戶中的文件,甚至是secret tokens等敏感信息。因為該漏洞可以訪問到secret tokens,有了secret后,cookie可以在GitLab中被marshalled和resigned,所以該漏洞又可以導(dǎo)致遠(yuǎn)程命令執(zhí)行。
漏洞編號
CVE-2016-9086。
影響版本
8.13.0至8.13.2
8.12.0至8.12.7
8.11.0至8.11.9
8.10.0至8.10.12
8.9.0至8.9.11
修復(fù)方式
GitLab官方強(qiáng)烈建議所有的用戶請立刻對自己的GitLab進(jìn)行升級。但是注意,版本號為8.9.0至8.9.11并沒有相關(guān)補(bǔ)丁。如果沒有辦法進(jìn)行升級,或者無修復(fù)補(bǔ)丁,可以采取以下方法修補(bǔ)該漏洞。
1.選擇Admin Area
2.點擊settings
3.在import sources下面關(guān)閉GitLab export這個選項
4.點擊save
驗證修復(fù)
1.首先在瀏覽器登陸任意GitLab賬號
2.點擊Projects
3.點擊New Project創(chuàng)建一個項目
4.輸入任意項目名稱
5.如果里面沒有出現(xiàn)GitLab export,那么就表示漏洞已經(jīng)修復(fù)