Git CLI(命令行界面)中存在一個高危漏洞,攻擊者可利用該漏洞在Linux和macOS系統上實現任意文件寫入。目前該漏洞的概念驗證(PoC)利用代碼已公開。
該漏洞編號為CVE-2025-48384,CVSS嚴重性評分為8.1分(滿分10分)。當用戶執行git clone --recursive
命令克隆惡意倉庫時,攻擊者可借此實現遠程代碼執行。
**關鍵要點**
1. CVE-2025-48384(CVSS 8.1分)漏洞允許攻擊者在Linux/macOS系統上通過惡意倉庫的`git clone --recursive`操作實現任意文件寫入
2. 攻擊者可注入惡意Git Hook腳本,這些腳本會在`git commit`和`git merge`操作時自動執行
3. 建議升級至已修復版本(v2.43.7、v2.44.4、v2.45.4、v2.46.4、v2.47.3、v2.48.2、v2.49.1、v2.50.1),macOS用戶應使用Git CLI而非GitHub Desktop
4. 目前公開的概念驗證利用代碼已出現,開發環境需立即采取修復措施
漏洞技術細節
據安全研究員Matt Muir和Linux Malware團隊披露,CVE-2025-48384漏洞源于Git在處理類UNIX系統上的.gitmodules文件時,對配置值和回車符(\r)字符的基礎性解析缺陷。
該漏洞的根本原因是Git在讀取和寫入包含控制字符的配置值時存在關鍵性不一致。當攻擊者構造一個子模塊路徑以回車符結尾的惡意.gitmodules文件時,Git的配置解析器會在讀取操作時剝離該字符,但在寫入操作時卻保留該字符。
這種解析不一致性導致子模塊內容可被惡意重定向至任意文件系統位置。該漏洞特別影響macOS和Linux平臺上未打補丁的Git CLI版本(v2.43.7、v2.44.4、v2.45.4、v2.46.4、v2.47.3、v2.48.2、v2.49.1和v2.50.1之前的版本)。值得注意的是,由于非UNIX系統在控制字符處理上的根本差異,Windows系統不受此漏洞影響。
macOS平臺的GitHub Desktop客戶端尤其容易受到攻擊,因為它在底層默認執行git clone --recursive
操作。DataDog研究人員已發現多種利用該任意文件寫入原語實現持久性遠程代碼執行的攻擊路徑。
最常見的攻擊場景涉及武器化倉庫:攻擊者發布帶有README說明的倉庫,誘導用戶執行git clone --recursive
命令——這種做法在開源項目中經常被推薦使用。一旦克隆了惡意倉庫,攻擊者就能將倉庫子模塊中包含的Git Hook腳本直接寫入受害者的.git子目錄中。
這些惡意負載會在常規Git操作(如git commit
和git merge
命令)時自動執行,為攻擊者提供透明的持久化機制。其他利用技術還包括覆蓋受害者的Git配置文件,修改[remote "origin"]部分,從而將知識產權和專有源代碼秘密外泄至攻擊者控制的服務器。
安全研究人員已驗證了可向/tmp目錄實現任意寫入的概念驗證利用代碼,相關代碼已在互聯網公開。
風險因素 | 詳情 |
---|---|
受影響產品 | Linux和macOS上v2.43.7、v2.44.4、v2.45.4、v2.46.4、v2.47.3、v2.48.2、v2.49.1、v2.50.1之前的Git CLI版本;macOS平臺的GitHub Desktop客戶端(未打補丁版本) |
影響 | 任意文件寫入 |
利用前提 | 可通過公共托管平臺訪問的倉庫或社會工程學攻擊 |
CVSS 3.1評分 | 8.1(高危) |
修復建議
企業必須立即通過各自的包管理器將受影響的Git CLI升級至已修復版本(v2.43.7、v2.44.4、v2.45.4、v2.46.4、v2.47.3、v2.48.2、v2.49.1或v2.50.1)。用戶可通過執行git --version
命令驗證當前Git版本,并與存在漏洞的版本范圍(包括v2.50.0、v2.49.0、v2.48.0-v2.48.1、v2.47.0-v2.47.2、v2.46.0-v2.46.3、v2.45.0-v2.45.3、v2.44.0-v2.44.3以及v2.43.6及更早版本)進行比對。
macOS平臺的GitHub Desktop用戶應暫時避免使用該客戶端進行Git操作,轉而使用已打補丁的Git CLI進行倉庫管理,直至官方發布修復補丁。
安全團隊可實施檢測機制,使用自定義代理規則監控針對外部倉庫的可疑git clone --recursive
操作,同時在克隆不受信任的倉庫前審計.gitmodules文件內容。