克隆子模組和使用 git shell 時 Git 中的漏洞

分散式原始碼控制系統Git 2.38.1、2.30.6、2.31.5、2.32.4、2.33.5、2.34.5、2.35.5、2.36.3 和2.37.4 的修正版本已發布,其中修復了兩個漏洞,分別在未檢查的儲存庫的“-recurse-submodules”模式下使用“git clone”命令以及使用“git shell”交互模式時出現。 您可以在 Debian、Ubuntu、RHEL、SUSE/openSUSE、Fedora、Arch、FreeBSD 頁面上追蹤發行版中軟體包更新的發布情況。

  • CVE-2022-39253 - 此漏洞允許控制複製儲存庫內容的攻擊者透過在複製儲存庫的 $GIT_DIR/objects 目錄中放置指向感興趣檔案的符號連結來存取使用者係統上的機密資料。 僅當本地克隆時(在“--local”模式下,當克隆的目標資料和來源資料位於同一分區時使用)或克隆打包為另一個存儲庫中的子模組的惡意存儲庫時(例如,當使用「git clone」指令遞歸包含子模組時--recurse-submodules」)。

    此漏洞是由於在「--local」克隆模式下,git 將 $GIT_DIR/objects 的內容傳輸到目標目錄(建立硬連結或檔案副本),執行符號連結的解引用(即,結果,非符號連結被複製到目標目錄,而是直接複製到連結指向的檔案)。 為了阻止該漏洞,新版本的 git 禁止以「--local」模式複製 $GIT_DIR/objects 目錄中包含符號連結的儲存庫。 此外,protocol.file.allow 參數的預設值已變更為“user”,這使得使用 file:// 協定的克隆操作不安全。

  • CVE-2022-39260 - “git shell”指令中使用的 split_cmdline() 函數出現整數溢位。 此問題可用於攻擊使用「git shell」作為登入 shell 並啟用互動模式的使用者(已建立 $HOME/git-shell-commands 檔案)。 當發送大小超過 2 GB 的專門設計的命令時,利用該漏洞可導致在系統上執行任意程式碼。

來源: opennet.ru

添加評論