Git 更新修復 8 個漏洞

已發表 分散式原始碼控制系統Git 2.24.1、2.23.1、2.22.2、2.21.1、2.20.2、2.19.3、2.18.2、2.17.3、2.16.6、2.15.4 和2.14.62.24.1 的修正版本XNUMX,修正了允許攻擊者重寫檔案系統中的任意路徑、組織遠端程式碼執行或覆蓋「.git/」目錄中的檔案的漏洞。員工發現最多的問題
微軟安全回應中心顯示,八個漏洞中有五個是Windows平台特有的。

  • CVE-2019,1348 — 流指令“feature export-marks=path”它允許 將標籤寫入任意目錄,當使用未經檢查的輸入資料執行「git fast-import」操作時,可用於覆寫檔案系統中的任意路徑。
  • CVE-2019,1350 - 命令列參數的錯誤轉義 可能導致 使用 ssh:// URL 在遞歸克隆期間遠端執行攻擊者程式碼。特別是,以反斜線結尾的轉義參數(例如“test \”)處理不正確。在這種情況下,當用雙引號建立參數時,最後一個引號被轉義,這使得可以在命令列上組織選項的替換。
  • CVE-2019,1349 — 在某些條件下在 Windows 環境中遞歸克隆子模組(“clone —recurse-submodules”)時 它可能是 觸發兩次使用同一個 git 目錄(.git、git~1、git~2 和 git~N 在 NTFS 中被識別為一個目錄,但這種情況只針對 git~1 進行了測試),可以用來組織寫入目錄“.git”。例如,為了組織程式碼的執行,攻擊者可以透過 .git/config 檔案中的簽出後處理程序來取代他的腳本。
  • CVE-2019,1351 - 在翻譯「C:\」等路徑時,Windows 路徑中字母驅動器名稱的處理程序僅設計用於替換單字母拉丁標識符,但沒有考慮創建透過「subst letter:path」分配的虛擬驅動器的可能性。此類路徑不被視為絕對路徑,而是被視為相對路徑,這使得在克隆惡意儲存庫時可以在工作目錄樹之外的任意目錄中組織記錄(例如,在磁碟中使用數字或unicode 字元時)名稱 - “1:\what\the\ hex.txt”或“ä:\tschibät.sch”)。
  • CVE-2019,1352 — 在 Windows 平台上工作時,使用 NTFS 中的替代資料流,透過在檔案名稱中新增「:stream-name:stream-type」屬性來創建, 允許 克隆惡意儲存庫時會覆蓋“.git/”目錄中的檔案。例如,NTFS 中的名稱「.git::$INDEX_ALLOCATION」被視為指向「.git」目錄的有效連結。
  • CVE-2019,1353 — 在 WSL(Windows Subsystem for Linux)環境中使用 Git 存取工作目錄時 不曾用過 防止 NTFS 中的名稱操縱(可以透過 FAT 名稱轉換進行攻擊,例如,可以透過「git~1」目錄存取「.git」)。
  • CVE-2019,1354 -
    機會 當複製包含名稱中帶有反斜線的檔案(例如「a\b」)的惡意儲存庫時,會寫入Windows 平台上的「.git/」目錄,這在Unix/Linux 上是可以接受的,但被接受為Windows 上的路徑。

  • CVE-2019,1387 - 子模組名稱的檢查不足可用於組織有針對性的攻擊,如果遞歸克隆,可能會 可能導致 執行攻擊者的程式碼。 Git 並沒有阻止在另一個子模組的目錄中建立子模組目錄,這在大多數情況下只會導致混亂,但並不能阻止遞歸克隆過程中另一個模組的內容被覆蓋(例如,子模組目錄) “hippo”和“hippo/hooks”放置為“.git/modules/hippo/”和“.git/modules/hippo/hooks/”,hippo中的hooks目錄可以單獨用於託管觸發的hooks。

建議 Windows 使用者立即更新其 Git 版本,並在更新之前不要複製未經驗證的儲存庫。如果暫時還無法緊急更新Git版本,那麼為了降低被攻擊的風險,建議不要對未檢查的倉庫運行“git clone --recurse-submodules”和“git submodule update”,不要使用“git使用未經檢查的輸入流進行“快速導入”,並且不將儲存庫複製到基於NTFS 的分割區。

為了增加安全性,新版本還禁止在 .gitmodules 中使用「submodule.{name}.update=!command」形式的結構。對於發行版,您可以在頁面上追蹤軟體包更新的發布 Debian,Ubuntu, RHEL, SUSE/開放SUSE, Fedora, , ALT, FreeBSD的.

來源: opennet.ru

添加評論