關閉選單
研究人員發現GitHub存在嚴重漏洞,可透過單次Git推送利用遠端程式碼執行

網路安全研究人員揭露了一個影響 GitHub.com 和 GitHub Enterprise Server 的嚴重安全漏洞的細節,該漏洞可能允許經過驗證的使用者透過單一「git push」命令獲得遠端程式碼執行權限。此漏洞編號為CVE-2026-3854(CVSS :8.7),是一個命令注入漏洞,攻擊者可以利用該漏洞,透過推送權限存取儲存庫,從而在實例上執行遠端程式碼。

根據GitHub 針對此漏洞發布的公告,“在 git push 操作期間,用戶提供的推送選項值在包含在內部服務標頭之前未經過適當的清理。由於內部標頭格式使用的分隔符也可能出現在用戶輸入中,攻擊者可以通過精心構造的推送選項值注入額外的元數據字段。”

谷歌旗下的雲端安全公司 Wiz 於 2026 年 3 月 4 日發現了該問題並進行了報告,GitHub 在兩小時內驗證了問題並將其修復程序部署到了 GitHub.com。此漏洞已在 GitHub Enterprise Server 版本 3.14.25、3.15.20、3.16.16、3.17.13、3.18.8、3.19.4、3.20.0 及更高版本中修復。目前沒有證據顯示該漏洞曾被惡意利用。

根據 GitHub 的說法,該問題會影響 GitHub.com、GitHub Enterprise Cloud、GitHub Enterprise Cloud with Data Residency、GitHub Enterprise Cloud with Enterprise Managed Users 和 GitHub Enterprise Server。

問題的根源在於,用戶提供的Git 推送選項在合併到內部 X-Stat 標頭之前沒有經過充分的清理。由於內部元資料格式依賴分號作為分隔符,而分號也可能出現在使用者輸入中,因此惡意攻擊者可以利用此漏洞注入任意命令並執行它們。

GitHub 首席資訊安全長 Alexis Wales 表示:“透過將多個注入值連結在一起,研究人員證明攻擊者可以覆蓋推送處理的環境,繞過通常限制鉤子執行的沙箱保護,並最終在伺服器上執行任意命令。

Wiz 在聯合聲明中指出,該漏洞「極易」被利用,並補充說它允許在共享儲存節點上執行遠端程式碼。截至公開揭露時,約 88% 的實例都存在此漏洞。遠端程式碼執行鏈由三個注入串聯而成——

✔  注入一個非生產環境的rails_env值以繞過沙箱

✔  注入custom_hooks_dir以控制重定向 hook 目錄

✔  在repo_pre_receive_hooks中註入一個精心建構的鉤子條目,該條目會觸發路徑遍歷,以 git 使用者身分執行任意命令。

Wiz 安全研究員 Sagi Tzadik表示:“由於我們以 git 用戶身份執行了非沙盒代碼,因此我們完全控制了 GHES 實例,包括文件系統讀取/寫入存取權限和對內部服務配置的可見性。”

對於 GitHub.com,企業模式標誌(GitHub Enterprise Server 設定為“true”)預設為“false”,導致自訂鉤子路徑失效。但由於此標誌也會透過 X-Stat 標頭傳遞,因此同樣可以透過相同的機制注入,從而在 GitHub.com 上執行程式碼。

更糟糕的是,鑑於 GitHub 的多租戶架構及其共享的後端基礎設施,該公司指出,在 GitHub.com 上獲得程式碼執行權限會導致跨租戶暴露,實際上允許攻擊者讀取共享儲存節點上的數百萬個儲存庫,而無需考慮組織或用戶。

鑑於 CVE-2026-3854 的嚴重性,建議使用者立即套用更新以獲得最佳保護。Wiz表示:“只需一條git push命令就足以利用GitHub內部協議的漏洞,在後端基礎設施上執行代碼。當多個用不同語言編寫的服務通過共享的內部協議傳遞數據時,每個服務對這些數據所做的假設就成了關鍵的攻擊面。我們鼓勵構建多服務架構的團隊審核用戶控制的輸入如何通過內部協議流動—尤其是在安全關鍵配置源自共享數據格式的情況下。”

資料來源:https://thehackernews.com/2026/04/researchers-discover-critical-github.html
 
網路安全研究人員發現 GitHub 存在編號 CVE-2026-3854 的重大安全漏洞,攻擊者僅需透過單次「git push」指令即可在 GitHub.com 或企業版伺服器上實現遠端執行程式碼(RCE)。該漏洞源於推送選項未經嚴格過濾導致命令注入,可能引發跨租戶數據外洩。