近日,Git被发现存在一个远程代码执行漏洞(CVE-2018-11235)。目前POC已发布,链接地址:https://www.exploit-db.com/exploits/44822/?rss
Git一般部署于企业内部网络,对企业产品代码进行集中管理,因此此漏洞的利用有一定限制。但也不排除潜伏于企业内网的攻击者窃取核心代码的风险。
参考链接:
影响范围
受影响的版本:
- 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
不受影响的版本:
- Git version 2.14.4
- Git version 2.15.2
- Git version 2.16.4
- Git version 2.17.1
影响排查
该漏洞是由于在使用git clone时没有对submodule子模块的文件夹名称做足够的验证而导致。用户使用‘git clone –recurse-submodules’时,Git会检索已配置的子模块,找到存储该子模块库的位置,写入客户端工作目录。由于没有特殊过滤,此时存储库中的任意hook脚本都可被执行,从而导致远程执行任意代码。
版本检查
可使用如下命令查看所使用的Git版本,来判断是否在受影响范围内。
git --version
脆弱点排查
受影响版本的主要问题在于Git允许在配置中包含不属于.git目录的路径,因此我们可以通过在本地检测使用版本是否存在上述问题来对该漏洞进行排查。具体步骤如下:
新建临时目录,并运行
mkdir nsfocustemp cd nsfocustemp git init test && cd test && git update-index --add --cacheinfo 120000[文件模式:符号连接],e69de29bb2d1d6434b8b29ae775ad8c2e48c5391[SHA1],.gitmodules[文件名]
若结果显示为下所示信息,则所使用版本不受该漏洞影响
若命令执行成功,则会在git中创建了一个空仓库repository,如下图示所示,那么所使用版本在受影响范围内,需尽快升级版本。
漏洞防护
官方已经发布了新版本修复了上述漏洞,请受影响的用户尽快下载更新进行防护。下载链接如下:
- Windows:
- Mac OS X:
https://git-scm.com/download/mac
- Linux:
https://git-scm.com/download/linux
以Window为例,可使用上述地址直接下载最新版本,进行覆盖安装,完成更新。或直接使用以下命令进行版本更新。
git update-git-for-windows