Git公开和修补安全漏洞

微软报道,Git公布了一个安全漏洞,允许恶意代码库执行任意代码。

该漏洞(CVE 2018-11235)已在Git 2.17.1和Windows 2.17.1(2)的Git中得到解决和修复,这两个版本均于今天发布。另外,Visual Studio团队服务(VSTS)团队已经阻止恶意软件库被推送到VSTS,以确保Visual Studio不能被用作将恶意软件源传输给尚未修补其客户端的客户端的媒介。

存储库被克隆时会导致该漏洞。克隆存储库时,Git在准备克隆子模块时将父存储库检出到工作目录中。然后,Git意识到它不需要执行子模块的克隆,因为子模块的存储库已经存在于磁盘上,从它签入父文件夹时就已经存在,然后在检出父存储库时将其写入工作目录。

根据微软的说法,问题在于,当克隆Git存储库时,从服务器获取的重要配置细节,例如钩子,这些脚本可以在Git工作流中的某些点运行。

不从远程服务器复制配置,因为这会导致远程服务器可能提供将在最终用户的计算机上执行的代码的漏洞。不幸的是,由于新的漏洞,这正是发生的情况,微软解释道。

由于子模块的存储库已签入到父存储库,因此未实际克隆。因此,子模块存储库可能已经配置了一个挂钩。另外,如果用户递归地克隆了一个恶意的父库,它首先检查父库,读取子模块的检入库,并准备将该子库写入工作目录,然后执行检出后钩子。

为了消除此漏洞,Git客户端会更仔细地检查子模块的文件夹名称。现在,子模块文件夹名称不能再包含“..”作为路径段,并且它们不能是符号链接。因此,他们现在必须位于.git存储库文件夹中,而不是在实际存储库的工作目录中。

据微软称,Git现在拒绝使用不遵循这个新指定配置的存储库。Visual Studio Team Services和其他托管提供程序也会拒绝用户推送不符合此子模块配置的存储库,以保护尚未修补的客户端。

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();