APP下载
报价宝  ›  综合  › 

Git爆任意程式码执行漏洞,所有使用者皆受影响!

报价宝 来源:baojiabao.com 发布时间:2018-05-30 18:32:00 09月29日更新
报价宝综合消息Git爆任意程式码执行漏洞,所有使用者皆受影响!

微软Visual Studio团队服务专案经理Edward ThomsonMay在DevOps部落格提到,近日Git社群发现了Git存在一个可让骇客执行任意程式码的漏洞,他呼吁,开发者应尽速更新客户端应用程序,而微软也已经采取进一步防护,避免恶意程式码储存库被推送到微软的程式码托管服务VSTS(Visual Studio Team Services)中。

这个代码为CVE 2018-11235的安全漏洞,当用户在恶意程式码储存库中操作时,便有可能遭受任意程式码执行攻击。远端程式码储存库包含有子模组(Submodule)的定义以及资料,这两者被捆绑在一起做为资料夹,提交到父程式码储存库中。当这个程式码储存库被递回复制时,Git一开始会将父储存库放到工作目录中,接着准备复制子模组。

但Git随后便会发现,他不需要复制子模组,因为子模组在之前提交到了父储存库,所以也已经被写入到工作目录中,这个子模组早存在于磁盘上。因此Git可以跳过抓取档案的步骤,直接使用磁盘中工作目录里的子模组。

不过,也并非所有档案都能被复制,当客户端复制了一个程式码储存库,其中的重要配置并无法从服务器上取得,这包括.git或是config档案的内容,另外,还有在Git工作流中特定时间点会被执行的脚本程式钩子(Hook),像是Git会在文件写入工作目录时,就会执行Post-checkout钩子。

而设置档之所以不应从远端服务器复制,重要的原因之一便是,远端服务器可能会提供恶意程式码,而这些程式码是会被Git执行的。

这个CVE 2018-11235漏洞便是犯了这个错误,让Git存在子模组设置漏洞。在子模组储存库被提交到父储存库,且从未实际复制过,子模组储存库中又可能存在已配置的钩子,这时当使用者进行递回复制,精心设计的恶意父储存库会先被写入工作目录,然后接着读取子模组,将这些子模组也写入到工作目录中,而最后一步,便会执行在子模组储存库里任何的Post-checkout钩子。

为了解决这个问题,现在Git客户端会更仔细检查子模组的资料夹名称,包含..现在都为不合法的名称,而且也不能是符号链接,所以这些档案必须实际存在于.git的储存库资料夹中,而不能是工作目录里。

Edward ThomsonMay提到,Git、VSTS与多数其他程式码托管服务,现在皆会拒绝存在这样子模组配置的储存库,以保护还没更新的Git客户端。Git 2.17.1还有Windows版的2.17.1客户端软件现已释出,微软呼吁开发者尽速更新。

文章标签: 报价宝 降噪耳机价格 耳机价格 红米手机价格 华为手机价格 小米手机价格 电视机价格 笔记本电脑价格 笔记本价格 汽车价格 汽车价格 笔记本价格 笔记本电脑价格 电视机价格 降噪耳机价格