

軟體協同開發不可或缺的工具Git,在5月中發布資安漏洞修補的改版,揭露儲存庫複製過程的問題
其中最受到關注的漏洞是CVE-2024-32002,Git開發團隊將此漏洞的嚴重程度評為9.1分(滿分10分),當大家在Windows或macOS電腦使用子模組(submodules)對軟體儲存庫進行Git處理時,可在Git執行複製(clone)作業的過程當中進行操弄,趁機執行來自git/資料夾的掛勾(hook),而此舉將導致遠端執行程式碼(RCE)的資安危機。
負責維護Git for Windows 的微軟軟體工程師Johannes Schindelin表示,具有子模組的儲存庫,能夠透過一些方法利用Git的程式臭蟲,因此當進到寫入檔案的階段,資料不會寫入子模組的工作區(worktree),而是寫入名為.git/的資料夾。
之所以發生這樣的狀況,Johannes Schindelin認為可能是因為Git處理資料夾與符號連結路徑時,只有名稱大小寫的差別,而容易搞混,所以Git會寫入其中一個位置,但不會兩個都寫入。這樣的混淆狀況可用來操弄Git,使其在複製作業進行之際,也同時寫入一個可被執行的掛勾機制,如此一來,用戶將無法檢測當中執行的程式碼。

根據資安媒體Help Net Security持續追蹤,漏洞懸賞平臺公司Bugcrowd資安維運團隊領導人Amal Murali,在5月19日公布CVE-2024-32002漏洞濫用的概念驗證技術研究
至於CVE-2024-32004、CVE-2024-32465這兩個高風險漏洞的嚴重程度,Git團隊分別評為8.2分與7.4分。
就CVE-2024-32004而言,問題發生在服務多個使用者的系統當中,攻擊者可以特製1個本機儲存庫,貌似複製作業只進行到一部分而產生丟失物件的狀況,因此,當這個殘缺的儲存庫後續透過Git進行複製時,Git會在具有使用者完整權限執行複製作業的同時,而得以任意執行程式碼。

CVE-2024-32465的問題也是與複製Git儲存庫有關,若有人拿到內含Git儲存庫完整副本的ZIP壓縮檔,不應該被視為安全可信的狀態,原則上,在本機電腦進行Git複製時,這類可疑的儲存庫會被清理掉,然而,在未修補這個漏洞的Git版本,卻能複製包含Git儲存庫的ZIP壓縮檔時,略過相關的防護機制,有心人士可藉此疏漏而能執行不安全的掛鉤機制。
