Git社区披露了一个影响clone和submodule命令的安全漏洞,当存在漏洞的机器访问恶意库时,这些命令可以远程执行代码。这个由Mitre分配了编号CVE-2018-17456的漏洞已在Git 2.19.1中修复

要触发该漏洞,恶意库可以伪造一个.gitmodules,其中包含以破折号开头的URL。这将影响git clone –recurse-submodules和git submodule update –recursive,因为它们会将这个以破折号开头的URL递归地传递给git clone或git submodule子进程,它们会将该URL解释为命令选项。这可能导致在本地机器上执行任意命令。这个漏洞类似于CVE-2017-1000117,它也是通过伪造以破折号开头的ssh URL实现选项注入攻击,由git执行的ssh子进程会将这些URL解释为命令选项。目前还没有任何已知的不法行为。

我们还利用这段时间扫描了GitHub上所有的库,寻找它实际被用于实施攻击的证据。我们很高兴地告诉大家,没有发现攻击实例(现在,在我们的检测下,就没有实例可以添加了)。

正如@joernchen提交的修复漏洞的PR所显示的那样,修复本身非常简单。不过,这一发现为.gitmodules的全面审计提供了机会,它会针对其中的路径和URL实现更严格的检查

如前所述,Git 2.19.1包含了对这个漏洞的修复。另外,该补丁还被反向移植到了2.14.5、2.15.3、2.16.5、2.17.2和2.18.1版本。由于git集成到了GitHub项目(如GitHub Desktop和Atom)中,这些项目也已经得到了修复,所以你最好尽快升级它们。

Comments are closed.