2018年06月01日 星期五

Git 曝任意代碼執行漏洞

Git 由於在處理子模塊代碼庫的設置檔案存在漏洞,導致開發者可能遭受任代碼執行攻擊,多數代碼託管服務皆已設置拒絕有問題的代碼儲存庫,但建議使用者盡快更新,避免不必要的風險。

Microsoft Visual Studio 團隊服務項目經理 Edward Thomson May 在 DevOps 博客中提到,Git 社區最近發現 Git 存在一個漏洞,允許黑客執行任意代碼。他敦促開發人員盡快更新客戶端應用程序。微軟還採取了進一步措施,防止惡意代碼庫被推入微軟的 VSTS(Visual Studio Team Services)。
      此代碼是 CVE 2018-11235 中的一個安全漏洞。當用戶在惡意代碼庫中操作時,他們可能會受到任意代碼執行攻擊。遠程代碼存儲庫包含子模塊定義和數據,它們作為文件夾捆綁在一起並提交給父代碼存儲庫。當這個代碼倉庫被來回複製時,Git 最初會將父倉庫放到工作目錄中,然後準備複製子模塊。
      但是,Git 稍後會發現它不需要復制子模塊,因為子模塊之前已經提交給父存儲庫,它也被寫入工作目錄,這個子模塊已經存在於磁盤上。因此,Git 可以跳過抓取文件的步驟,並直接在磁盤上的工作目錄中使用子模塊。
      但是,並非所有文件都可以被複製。當客戶端複製代碼庫時,無法從服務器獲取重要的配置。這包括 .git 或配置文件的內容。另外,在 Git 工作流中的特定位置執行的鉤子(如Git)將在將文件寫入工作目錄時執行 Post-checkout 鉤子。
      不應該從遠程服務器複製配置文件的一個重要原因就是,遠程服務器可能提供由 Git 執行的惡意代碼。
      CVE 2018-11235 的漏洞正是犯了這個錯誤,所以 Git 有子模塊來設置漏洞。子模塊存儲庫提交給父存儲庫,並且從未實際複製過。子模塊存儲庫中可能存在已配置的掛鉤。當用戶再次出現時,惡意的父庫會被精心設計。將寫入工作目錄,然後 Git 讀取子模塊,將這些子模塊寫入工作目錄,最後一步執行子模塊存儲庫中的任何 Post-checkout 掛鉤。
      為了解決這個問題,Git 客戶端現在將更仔細地檢查子文件夾文件夾名稱。包含現在非法的名稱,並且它們不能是符號鏈接,因此這些文件實際上必須存在於 .git 中,而不能位於工作目錄中。
      Edward ThomsonMay 提到,Git,VSTS 和大多數其他代碼託管服務現在拒絕使用這些子模塊配置的存儲庫來保護尚未更新的 Git 客戶端。 Git 2.17.1 和 Windows 的 2.17.1 客戶端軟件版本已經發布,微軟希望開發人員盡快更新。

更多資訊,請查看原文:

www.365master.com/news/3/20180601/80218.shtml

 

2018年06月01日 星期五