GitHub高危漏洞安全通告

发布时间 2018-10-08

漏洞编号和级别


CVE编号:CVE-2018-17456,危险级别:高危,CVSS分值:官方未评定


影响版本


GitHub Desktop 1.4.1及更早版本

Atom包含了相同的嵌入式Git,也受到了影响。版本1.31.2和1.32.0-beta3


漏洞概述


10月5日,Git项目披露了一个漏洞,编号为CVE-2018-17456。当用户克隆恶意存储库时,该漏洞可能会导致执行任意代码。


如果执行了特定的命令,即“git clone --recurse-submodules”,其软件中的漏洞允许在客户端平台上执行任意代码。目前只有Unix平台受到了影响。


微软澄清了这个问题仅仅影响基于Unix的平台,如Linux和macOS,或适用于在Windows子系统Linux(WSL)的Linux发行版中运行git的人。这是因为在利用漏洞时写入磁盘的文件名称中需要冒号,并且由于Windows文件系统不支持冒号,因此Git for Windows不会写入该文件。


GitHub.com和GitHub Enterprise都不会直接受此漏洞影响。但是,与先前发现的漏洞一样,GitHub.com将检测恶意存储库,并拒绝尝试创建它们的推送或API请求。具有此检测功能的GitHub Enterprise将于10月9日发布。


漏洞验证


此漏洞与CVE-2017-1000117非常相似,因为它们都是与子模块相关的选项注入攻击。在之前的攻击中,恶意存储库会将一个.gitmodules文件发送到一个远程存储库,其中一个子模块以短划线“-”开头。由Git产生的ssh程序将把它解释为一个选项。除了选项注入针对子git(child git)克隆它自己外,此攻击以类似的方式进行。


恶意“.gitmodules”样例,运行“git clone --recurse-submodules”时,Git会解析提供的.gitmodules文件中的URL字段,并将其作为参数盲目地传递给“git clone”子进程。如果URL字段设置为以短划线开头的字符串,则此“git clone”子进程将URL解释为选项。这可能导致执行超级项目中的任意脚本作为运行“git clone”的用户。


修复建议


GitHub鼓励所有GitHub桌面用户更新到桌面应用程序中现有的最新版本(1.4.2和1.4.3-beta0)
Atom通过完成以下任何一项,确保使用的是最新Atom版本:
Windows:从工具栏中,单击“帮助” - >“检查更新” 
MacOS:从菜单栏中单击“Atom” - >“检查更新”
Linux:通过从atom.io下载最新版本手动更新


参考链接


https://www.bleepingcomputer.com/news/security/git-project-patches-remote-code-execution-vulnerability-in-git/
https://seclists.org/oss-sec/2018/q4/19