← 返回蜂巢洞察

Git-Submodule新漏洞已修复

Git社区披露了一个影响clone和submodule命令的安全漏洞,当存在漏洞 … Read More

Socrates

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)中,这些项目也已经得到了修复,所以你最好尽快升级它们。

相关文章

技术实践

如何修复泄露的API密钥:开发人员必备的Git安全指南

想象一下这样的场景:你工作到很晚,终于让代码运行成功了,准备将其推送到GitHub上。 你执行了以下操作: git add . git commit -m "修复API集成问题" git push 几分钟后,你发现了一些异常现象:API的使用量突然增加了。可能是出现了意外的请求、新的云资源被使用了,甚至账单金额也比预期要高得多。 然后你发现了问题的根源: const apiKey = "sk_live_123456789"; 你的API密钥竟然被保存在Git仓库中去了。 这种情况确实很令人紧张,但也是可以解决的。 最重要的一点是: 如果API密钥已经被提交到了Git仓库中,那么即使你立即将其删

阅读全文