Git曝任意代码执行漏洞,所有使用者都受影响

2018-06-15 15:07 标签: 代码执行漏洞,网络安全

  Git由于在处理子模块代码库的设置档案存在漏洞,导致开发者可能遭受任代码执行攻击,多数代码托管服务皆已设置拒绝有问题的代码储存库,但建议使用者尽快更新,避免不必要的风险。

  Microsoft Visual Studio团队服务项目经理Edward Thomson May在DevOps博客中提到,Git社区最近发现Git存在一个漏洞,允许黑客执行任意代码。他敦促开发人员尽快更新客户端应用程序。微软还采取了进一步措施,防止恶意代码库被推入微软的VSTS(Visual Studio Team Services)。

  此代码是CVE2018-11235中的一个安全漏洞。当用户在恶意代码库中操作时,他们可能会受到任意代码执行攻击。远程代码存储库包含子模块定义和数据,它们作为文件夹捆绑在一起并提交给父代码存储库。当这个代码仓库被来回复制时,Git最初会将父仓库放到工作目录中,然后准备复制子模块。

  但是,Git稍后会发现它不需要复制子模块,因为子模块之前已经提交给父存储库,它也被写入工作目录,这个子模块已经存在于磁盘上。因此,Git可以跳过抓取文件的步骤,并直接在磁盘上的工作目录中使用子模块。

  但是,并非所有文件都可以被复制。当客户端复制代码库时,无法从服务器获取重要的配置。这包括.git或配置文件的内容。另外,在Git工作流中的特定位置执行的钩子(如Git)将在将文件写入工作目录时执行Post-checkout钩子。

  不应该从远程服务器复制配置文件的一个重要原因就是,远程服务器可能提供由Git执行的恶意代码。

  CVE2018-11235的漏洞正是犯了这个错误,所以Git有子模块来设置漏洞。子模块存储库提交给父存储库,并且从未实际复制过。子模块存储库中可能存在已配置的挂钩。当用户再次出现时,恶意的父库会被精心设计。将写入工作目录,然后Git读取子模块,将这些子模块写入工作目录,最后一步执行子模块存储库中的任何Post-checkout挂钩。

  为了解决这个问题,Git客户端现在将更仔细地检查子文件夹文件夹名称。包含现在非法的名称,并且它们不能是符号链接,因此这些文件实际上必须存在于.git中,而不能位于工作目录中。

  Edward Thomson May提到,Git,VSTS和大多数其他代码托管服务现在拒绝使用这些子模块配置的存储库来保护尚未更新的Git客户端。Git2.17.1和Windows的2.17.1客户端软件版本已经发布,微软希望开发人员尽快更新。

  稿源:开源中国,封面源自网络;

  以上为正文内容。

  网堤安全-专业的云安全解决方案综合服务商!

  转载请注明:网堤安全https://www.ddos.com

 

 

 

 

行业资讯 Industry Information

关于我们

About Us