
Git 專案於 2026 年 11 月 10 日發布修補版本,處理六個安全漏洞,包括遞歸複製惡意儲存庫時可執行任意程式碼、寫入非預期檔案,以及合併與二進位補丁的記憶體損毀。修補納入 Git 2.56.1,並回溯至 2.55.1、2.54.1、2.53.1、2.52.1、2.51.3 及 2.50.2[1]。
遞歸複製與路徑遍歷
CVE-2026-111760 最嚴重:Git 寫入檔案前會檢查路徑,但索引處理的整數截斷可令極長路徑以一個名稱通過驗證,實際寫入時用較短名稱。攻擊者藉此把子模組的 .git 檔案換成指向含惡意設定或 hooks 目錄的符號連結,Git 之後使用該目錄,就會在遞歸複製期間執行攻擊者控制的程式碼。
CVE-2026-113408:以協定 v2 複製空儲存庫時,伺服器可宣告指向未誕生分支的 HEAD symref,Git 儲存前沒有驗證目標;惡意伺服器可提交含路徑遍歷組件的名稱,令之後更新分支的操作寫到預定參考目錄之外。新版會在接收前驗證。
簽章、補丁與合併
CVE-2026-114467 涉及移除簽章的堆疊損毀。Git 剝離 GPG 簽章時假設訊息最多兩個簽章,含三個以上簽章的訊息會令它寫出固定大小堆疊陣列邊界,合併這類標籤即可觸發,造成記憶體損毀甚至阻斷服務。
CVE-2026-114469:Git 拒絕大於約 1 GiB 的補丁,但只檢查供應時的大小;二進位補丁經壓縮編碼,小量輸入可解壓成超限內容,繞過檢查並令 Git 崩潰。新版會同時檢查宣告的解壓後大小。
CVE-2026-105437:Git 寫出合併結果前計算所需記憶體,當結果極大,例如大量衝突配合很大的 conflict-marker-size,計算會溢位,緩衝區過小並被寫出邊界,影響合併不受信任內容的應用與託管服務。
fast-import 收緊存取
CVE-2026-114466 針對 git fast-import。這個工具讀取指令串流建立儲存庫,Git 本來已限制不受信任串流,但 rewrite-submodules-from 與 rewrite-submodules-to 可讀取任意檔案並透過錯誤訊息洩露內容,export-pack-edges 可建立檔案或追加資料。新版會直接拒絕,除非呼叫方加上 --allow-unsafe-features。
升級與緩解措施
GitHub 已在 github.com 及 Enterprise Cloud 部署修正;Enterprise Server 更新版本為 3.19.15、3.20.11、3.21.9 及 3.22.4,管理員應盡快升級。
無法即時升級的環境,只應從可信伺服器複製,避免遞歸複製不受信任的儲存庫,亦不要合併來源不明的標籤、二進位補丁或 fast-import 串流,但這些措施不能取代安裝修正版本;各分支記錄見官方發布說明[2]。