Git 发现存在一个潜在的远程代码执行漏洞(CVE-2018-11235),该漏洞非常危险,如果还没有修复,现在提供Linux平台修复方案。该漏洞源于在用 git clone 时没有对 submodule 的文件夹命名做足够的验证,当用户在使用 git clone –recurse-submodules 时, 攻击者可以通过构造一个恶意的 .gitmodules 文件从而远程执行任意代码。 CVE-2018-11235 被认为是最危险的一个漏洞,恶意攻击者可借此漏洞创建包含特殊代码 Git 子模块的 Git 仓库。在用户克隆这些仓库时,攻击者可借此漏洞在用户系统上执行恶意代码。 Git 和各种提供 Git 仓库托管服务的公司都已经有了相关补丁程序,以修复此危险漏洞。
CVE-2018-11235 受影响的版本 Git version < 2.13.7 Git version 2.14.x < 2.14.4 Git version 2.15.x < 2.15.2 Git version 2.16.x < 2.16.4 Git version 2.17.x < 2.17.1
CVE-2018-11235 不受影响的版本 Git version 2.14.4 Git version 2.15.2 Git version 2.16.4 Git version 2.17.1
CVE-2018-11235 解决方案 官方已经发布新版本修复了上述漏洞。该补丁程序将包含在 Git 2.17.1 中,主要修补了两个安全漏洞 CVE-2018-11233 和 CVE-2018-11235。 受影响的用户建议尽快升级到最新版本以进行防护。这次官方不仅推出了 Git 客户端补丁程序,还包含了 Git 服务器端组件的补丁程序。服务器端的补丁程序可以帮助 Git 托管服务识别包含恶意子模块的代码仓库,并阻止恶意用户上传它们。
Linux平台解决方案 1.Debian/Ubuntu系统运行以下命令: $ sudo apt-get update $ sudo apt-get install git 2.RedHat/CentOS系统运行以下命令: $ sudo yum update $ sudo yum update git 其它平台比如macOS则运行:$ brew upgrade git,如果是Windows平台升级到最新版客户端即可,目前最新版本是Git 2.18.0。
验证是否修复 升级之后,你可以通过以下命令来检查漏洞是否已经修复: $ git init test && \ cd test && \ git update-index --add --cacheinfo 120000,e69de29bb2d1d6434b8b29ae775ad8c2e48c5391,.gitmodules 注意:该命令将不会克隆任何仓库,也没有任何危险的指令。 如果你看到以下提示,则证明你的 Git 版本已经安全,不受该漏洞影响。 error: Invalid path '.gitmodules' fatal: git update-index: --cacheinfo cannot add .gitmodules 如果你的 Git 显示类似以下信息,并且创建一个空仓库,那么你的 Git 版本还存在此漏洞。 Initialized empty Git repository in /home/mike/test/.git/
相关主题 |