Git 中的遠端程式碼執行漏洞已被修復,多個工具受影響
據外媒 BleepingComputerofollow,noindex">報道 ,Git 專案組於前兩天公佈了一個在 Git 命令列客戶端、Git Desktop 和 Atom 中發現的任意程式碼執行漏洞,這是一個比較嚴重的安全漏洞,可能會使得惡意倉庫在易受攻擊的計算機上遠端執行命令。
這個漏洞已被分配 CVE-2018-17456 這個唯一 ID,與之前的 CVE-2017-1000117 可選注入漏洞相似 ——惡意倉庫可以新建一個 .gitmodules 檔案,其中包含以破折號開頭的 URL 。
通過破折號,當 Git 使用 --recurse-submodules 引數來克隆倉庫時,該命令會將 URL 翻譯為一個選項,然後可以使用該選項在計算機上進行遠端程式碼執行。
當執行 "git clone --recurse-submodules" 時,Git 會解析 .gitmodules 檔案中的 URL 欄位,然後將其作為引數傳遞給 "git clone" 子程序。如果 URL 欄位是一個字串,並使用短劃線開頭,這個 "git clone" 子程序將會把 URL 翻譯為一個選項。這可能導致使用者執行 "git clone" 時,會執行 superproject 中的任意指令碼。
下面通過一個例子 進行說明,下面的漏洞使用了惡意的 .gitmodules 檔案(注意 URL 如何以破折號開頭),以使得 Git 認為這是一個選項。然後 "touch VULNERABLE/[email protected]:/timwr/test.git" 這條命令將會被執行。
[submodule "test"] path = test url = ssh://-oProxyCommand=touch VULNERABLE/[email protected]:/timwr/test.git
此漏洞已在 Git v2.19.1 (with backports in v2.14.5, v2.15.3, v2.16.5, v2.17.2, and v2.18.1), GitHub Desktop 1.4.2, Github Desktop 1.4.3-beta0, Atom 1.31.2 和 Atom 1.32.0-beta3 中得到修復。
Git 專案組強烈建議所有使用者升級到最新版本的Git client , Github Desktop 或 Atom ,以免遭受惡意倉庫的攻擊。