查看原文
其他

GitHub漏洞允许任意代码执行,Windows不受影响

看雪学院 看雪学院 2019-05-26


10月5日,Git项目披露了一个漏洞,编号为CVE-2018-17456。当用户克隆恶意存储库时,该漏洞可能会导致执行任意代码。 Git v2.19.1已经发布了修复程序,以及v2.14.5,v2.15.3,v2.16.5,v2.17.2和v2.18.1中的补丁包。GitHub鼓励所有用户更新客户端以免受漏洞影响。



受影响的产品


  • GitHub桌面


GitHub Desktop 1.4.1及更早版本包含受此漏洞影响的嵌入式Git。GitHub鼓励所有GitHub桌面用户更新到桌面应用程序中现有的最新版本(1.4.2和1.4.3-beta0)。



  • Atom


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


通过完成以下任何一项,确保使用的是最新Atom版本:


  • Windows:从工具栏中,单击“帮助” - >“检查更新” 

  • MacOS:从菜单栏中单击“Atom” - >“检查更新”

  • Linux:通过从atom.io下载最新版本手动更新



  • Git在命令行和其他客户端上


为了免受此漏洞的影响,必须更新Git的命令行版本以及可能包含嵌入式Git版本的任何其他应用程序,因为它们彼此独立。


补充笔记:


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



CVE-2018-17456漏洞的详细信息


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


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


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


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



漏洞修复程序


问题是由@joernchen于9月23日报告,他提供了既有Git的私人安全列表,也有GitHub的Bug Bounty程序。 


GitHub的开发人员与Git社区合作开发了一个修复程序,从报告中可以清楚地看到漏洞已基本修复:


(图片来源:github)



建议


在 macOS,Windows 任意平台上使用Git的Visual Studio产品不受影响,但GitHub仍然建议用户升级到Git版本2.17.2,2.18.1和2.19.1,目前Git for Windows 2.19.1已经发布,下载地址在这里:


  • https://github.com/git-for-windows/git/releases/


GitHub是全球开发人员首选的代码共享及托管服务平台,高手众多,保持该项目及其工具为最新版本对提升安全保护非常重要。




参考来源:

  • github

  • ywnz


- End -






往期热门资讯:                                        


扫描二维码,获得更多新鲜资讯!


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存