Git 中的漏洞允許您覆蓋文件或執行您自己的代碼

分散式原始碼控制系統Git 2.40.1、2.39.3、2.38.5、2.37.7、2.36.6、2.35.8、2.34.8、2.33.8、2.32.7、2.31.8 和2.30.9 的修正版本已發布 .XNUMX,其中消除了 XNUMX 個漏洞。 您可以在 Debian、Ubuntu、RHEL、SUSE/openSUSE、Fedora、Arch、FreeBSD 頁面上追蹤發行版中軟體包更新的發布情況。 作為防止漏洞的解決方法,建議在使用未經測試的外部修補程式時避免執行「git apply --reject」命令,並在執行「git submodule deinit」、「git使用不受信任的儲存庫時,請使用“config --rename-section”和“git config --remove-section”。

CVE-2023-29007 漏洞允許替換 $GIT_DIR/config 設定檔中的設置,該設定檔可用於透過在 core.pager、core.editor 和 core.sshCommand 指令中指定可執行檔的路徑來在系統上執行程式碼。 該漏洞是由於邏輯錯誤造成的,在對設定檔中的某個節執行重命名或刪除操作時,可能會導致非常長的配置值被視為新節的開始。 在實踐中,可以透過指定很長的子模組 URL 來實現利用該漏洞的值替換,這些子模組在初始化時保存到 $GIT_DIR/config 檔案中。 當嘗試透過「git submodule deinit」刪除這些 URL 時,這些 URL 可能會被解釋為新設定。

漏洞 CVE-2023-25652 允許在使用「git apply –reject」指令處理專門設計的修補程式時覆蓋工作樹外部的檔案內容。 如果您嘗試使用「git apply」命令執行惡意補丁,並嘗試透過符號連結寫入文件,則該操作將被拒絕。 在 Git 2.39.1 中,針對符號連結操作的保護已擴展到阻止建立符號連結並嘗試透過它們進行寫入的補丁。 該漏洞的本質是Git沒有考慮到用戶可以運行“git apply –reject”命令將補丁中被拒絕的部分寫入帶有“.rej”擴展名的文件,而攻擊者可以使用此功能可將內容寫入任意目錄,只要目前存取權限允許即可。

此外,還修復了僅在Windows平台上出現的三個漏洞:CVE-2023-29012(執行「Git CMD」命令時在儲存庫的工作目錄中搜尋可執行檔doskey.exe,該漏洞可讓您組織在使用者係統上執行程式碼)、CVE-2023 -25815(在gettext 中處理特殊格式的本地化檔案時緩衝區溢位)和CVE-2023-29011(透過SOCKS5 工作時可能欺騙connect.exe 檔案)。

來源: opennet.ru

添加評論