Git爆远程代码执行漏洞,建议尽快升级

百家 作者:聊聊架构 2018-06-01 01:45:49

近日,微软 Visual Studio 团队项目经理 Edward Thomson 在其博客中对外披露,Git 社区最近发现了一个严重漏洞,Git 子模块在解析时可能导致git clone --recursive执行任意命令。

Git 和众多提供 Git 托管服务的公司都开始安装相关补丁程序,用以修补 Git 源码版本控制系统的一个危险漏洞。该补丁程序将包含在 Git 2.17.1 中,主要修补了两个安全漏洞 CVE-2018-11233 和 CVE-2018-11235。

Git 漏洞导致可在用户电脑上执行任意代码

CVE-2018-11235 被认为是最危险的一个漏洞,恶意攻击者可借此漏洞创建包含特殊 Git 子模块的 Git 仓库。

在用户克隆这些仓库时,Git 客户端处理恶意 Git 子模块的方式为攻击者提供了可乘之机,他们可以在用户系统上执行恶意代码。

最近发布的 Git 2.17.1 包含了补丁程序,可阻止这些恶意命令在用户电脑上执行。

用于 Git 服务器端的补丁程序

这次不仅推出了 Git 客户端补丁程序,还包含了 Git 服务器端组件的补丁程序。服务器端的补丁程序可以帮助 Git 托管服务识别包含恶意子模块的代码仓库,并阻止恶意用户上传它们。

GitHub 和微软(通过 Visual Studio Team Services)的 Git 托管服务已经部署了这些补丁,以防止攻击者滥用它们的服务。

来自 GitHub 的 Jeff King 说:“补丁程序非常简单,不过检测 Git 推送操作需要做大量的重构工作。”

King 说,这项工作涉及到很多项目。 “我为 Git 开发了补丁程序,其他人则在为 libgit2、JGit 和 VSTS 开发补丁”。

Edward Thomson 也提供了有关 CVE-2018-11235 的更多技术细节:

远程仓库可能包含子模块的定义,并将子模块的仓库数据捆绑在一起,作为文件夹签入到父仓库中。当递归克隆这个仓库时,git 首先将父仓库签出到工作目录中,然后准备克隆子仓库。然后会发现其实不需要克隆子仓库,因为磁盘上已经有子模块仓库存在,它们在签出父仓库时已经被写到了磁盘上。因此,git 可以跳过子仓库的拉取,并从磁盘上的仓库检出子模块。

问题是,在克隆一个仓库时,有一些重要的配置不是从服务器拉取的。其中包括.git/config 文件的内容和钩子之类的东西,这些钩子是一些脚本,会在 git 工作流的某个时间点运行。例如,git 会在将文件签出到工作目录之后运行 post-checkout 钩子。

配置内容不会从远程服务器上克隆,因为这样会打开一个漏洞:远程服务器可能会提供在用户计算机上执行的代码。

不过,由于子模块配置漏洞的存在,这种情况恰恰会发生。由于子模块仓库已签入到父仓库中,因此不会被克隆。子模块仓库可以拥有已配置好的钩子。在递归克隆精心设计的恶意父仓库时,首先会先签出父仓库,然后读取子模块的仓库以便将子模块写入到工作目录,最后它将执行在子模块的签入仓库中配置好的钩子。

目前,官方都已经提供了相关的漏洞修复方法,Edward Thomson 在其博客中也有具体的方案,简单来说,就是升级即可。升级之后,你可以通过以下命令来检查下是否已经修复:

git init test && 
  cd test && 
  git update-index --add --cacheinfo 120000,e69de29bb2d1d6434b8b29ae775ad8c2e48c5391,.gitmodules

如果你看到以下提升,则证明已经安全:

error: Invalid path '.gitmodules'
fatal: git update-index: --cacheinfo cannot add .gitmodules

升级操作指南可以看这里:

https://www.edwardthomson.com/blog/upgrading_git_for_cve2018_11235.html


如果,Google 早已解决不了你的问题。

如果,你还想知道 Apple、Facebook、IBM、阿里等国内外名企的核心架构设计。

来,我们在深圳准备了 ArchSummit 全球架构师峰会,想和你分享:

  • 微信百亿消息背后的万级机器是怎么做 AI 调度的

  • 滴滴三核心引擎之一的地图,如何计算路径规划和道路匹配

  • 微博如何做万亿级关系的实时协同推荐

  • 微众区块链首席架构师的两个具体案例实操

  • 罗辑思维 Go 语言微服务完整改造全过程

  • 阿里菜鸟全球跨域 RPC 架构设计

  • 前特斯拉视觉深度学习负责人带来的核心技术解析

  • 微服务楷模 Netflix 在 FaaS 上的最新实践

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接