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)中,这些项目也已经得到了修复,所以你最好尽快升级它们。
公众号推荐:
跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。
评论 1 条评论