廣大軟體開發者所仰賴的分散式版本控制系統Git,5月14日發布2.45.1版,之所以改版是為了修正5個資安漏洞,包含被標示為重大資安漏洞CVE-2024-32002,高風險的資安漏洞CVE-2024-32004與CVE-2024-32465,以及低度危險的資安漏洞CVE-2024-32020與CVE-2024-32021,用戶應將Git的版本升級至2.45.1、2.44.1、2.43.4、2.42.2、2.41.1、v2.40.2、v2.39.4。Git目前可安裝在多種作業系統平臺的電腦,像是Windows、macOS、Linux,以及各種類Unix的BSD版本,網站型態的軟體開發平臺GitHub與GitLab,都是基於Git而成的系統,許多整合式開發環境(IDE)也都依賴Git系統,像是微軟Visual Studio,直接內建Git tooling(MinGit),因應Git這次發布的資安漏洞,微軟也針對CVE-2024-32002CVE-2024-32004,發布Visual Studio版本更新,涵蓋Visual Studio 2022(17.9.7)Visual Studio 2019(16.11.36)Visual Studio 2017(15.9.62)

其中最受到關注的漏洞是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壓縮檔時,略過相關的防護機制,有心人士可藉此疏漏而能執行不安全的掛鉤機制。

熱門新聞

Advertisement