未加星标

Git存储库可能导致远程系统上的代码执行

字体大小 | |
[业界资讯 所属分类 业界资讯 | 发布者 店小二05 | 时间 | 作者 红领巾 ] 0人收藏点击收藏
Git存储库可能导致远程系统上的代码执行

Git存储库可能导致远程系统上的代码执行

Git和各种提供Git存储库托管服务的公司的开发人员已经推出了修补程序,以补丁Git源代码版本控制软件中的一个危险漏洞。
Git存储库可能导致远程系统上的代码执行
该修补程序包含在Git 2.17.1中,该修补程序修补了两个安全漏洞CVE-2018-11233和CVE-2018-11235。
Git漏洞导致用户PC上的任意代码执行
其中,CVE-2018-11235被认为是最危险的,因为它允许恶意行为者创建包含特制Git子模块的格式错误的Git存储库。
每当用户克隆该存储库时,由于Git客户端处理此恶意Git子模块的方式可能允许攻击者在用户的系统上执行代码。
昨晚发布的Git 2.17.1会阻止用户计算机执行这些命令。
为Git托管服务提供服务器端修补程序
但是补丁不仅仅发布到Git客户端。Git的服务器端组件也包含修复程序。此服务器端修复程序允许Git托管服务识别包含恶意子模块的代码库,并阻止用户首先上传它们。
像GitHub和Microsoft(通过其Visual Studio Team Services)的Git托管服务已经部署了这些补丁,以防止攻击者滥用其服务。
GitHub的一名工作人员杰夫金说:“这实际上是大部分工作去向的地方。“修复本身非常简单,但[Git推送操作]期间的检测需要大量重构。”
金说,这项工作涉及很多项目。“我为Git本身编写了补丁程序,但其他人则在编写libgit2,JGit和VSTS,”他补充道。
Visual Studio Team Services项目经理Edward Thomson也提供了CVE-2018-11235的更多技术说明:
远程存储库可能包含子模块的定义,并将该子模块的存储库数据捆绑在一起,作为文件夹签入到父存储库。当递归地克隆这个仓库时,git会首先将父仓库签出到工作目录中,然后准备克隆子仓库。然后它会意识到它不需要执行克隆 - 子模块的存储库已经存在于磁盘上; 因为它已签入到父项中,所以在签出时将其写入工作目录。因此,git可以跳过抓取并简单地使用磁盘上的存储库检出子模块。
问题在于,当您git clone存储库时,有一些重要的配置不能从服务器获得。这包括的内容.git/config文件和诸如钩子之类的东西,这些脚本将在git工作流程中的某些点运行。例如,post-checkoutgit会在任何时候将文件检出到工作目录中。
此配置不会从远程服务器克隆,因为这会造成一个危险的漏洞:远程服务器可能会为您提供您将在计算机上执行的代码。
不幸的是,由于这个子模块配置漏洞,这正是发生的情况。由于子模块的存储库已签入到父存储库中,因此从未实际克隆。因此子模块存储库实际上可以具有已配置的挂钩。如果在递归克隆(和这个仓库也必须与被克隆--recursive这个精心制作的恶意父库,它会首先检查父级,然后读取子模块的检入存储库,以便将子模块写入工作目录,最后它将执行任何post-checkout已配置的挂钩在子模块的签入存储库中。
发现此漏洞的信用归功于Etienne Stalmans,他通过GitHub的bug奖励计划进行报告。
Thomson提供了额外的指导来测试用户是否在他的博客上运行易受攻击的Git客户端。建议用户更新他们的Git桌面和/或服务器客户端。

本文业界资讯相关术语:网络安全论文 网络安全密钥 网络安全工程师 网络安全技术与应用 网络安全概念股 网络安全知识 网络安全宣传周 网络安全知识竞赛 网络安全事件

tags: Git,存储,模块,克隆,git,签入,CVE,漏洞,代码,执行,远程,用户,修补,客户端
分页:12
转载请注明
本文标题:Git存储库可能导致远程系统上的代码执行
本站链接:http://www.codesec.net/view/577144.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 业界资讯 | 评论(0) | 阅读(101)