BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Git和Mercurial在OS X和Windows上现严重漏洞

| 作者 Sergio De Simone 关注 17 他的粉丝 ,译者 谢丽 关注 11 他的粉丝 发布于 2014年12月24日. 估计阅读时间: 3 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

12月18日,一项影响Git和Mercurial的严重安全漏洞公布,它使攻击者可以在客户机上执行任意命令。该漏洞只影响运行在OS X (HFS+)和Windows(NTFS、FAT)上的客户端。Git核心团队已经为Git的所有当前版本发布了新版本。

Junio C Hamano自2005年起就是Git的维护者,他在博客中描述了该漏洞:

在位于工作树根目录.git/下的文件中,Git维护了库的各种元数据信息。在项目过程中,系统不允许提交那个目录(如.git/config)下的文件,或者从项目检出到工作树。否则,用户可能会无意间对一个看似没有问题实则有恶意的库执行了git pull,使她库中的元数据信息被覆盖了,或者她所拉取的库的所有者(如攻击者)安装了可执行的钩子。

Junio继续写道,在不区分大小写的文件系统中,这种防护已被发现不够用,因为,攻击者可以提交一个.Git/anything文件替换.git目录中的相应文件。因此,所有使用FAT或NTFS的Windows版本和使用不区分大小写的HFS+(默认选项)的OS X版本都容易受到攻击。

该漏洞还能以其它方式利用。实际上,Windows和OS X都可以将某些不同于.git的路径元素映射成.git,比如,Windows上的git~1/config和OS X上的.g\u200cit/config都可以当作.git/config同等对待。

据悉,该漏洞不会影响Linux系统,除非它们使用了不区分大小写的文件系统,但这不是一种常见的选择。

微软已经为他们的工具发布了补丁,其中包括Visual Studio 2013 RTM、Visual Studio 2013 Update 4和VS 2012 VSIX扩展。而且,虽然该漏洞只影响客户端,但微软还是“在VS Online和Codeplex上应用了一个补丁,防止服务器接受推送的.git/config文件。”

苹果也发布了一个新的Xcode 6.2 beta3版本来修复该漏洞:“检查包括禁止没有为不区分大小写或Unicode字符做出解释的路径。该问题通过增加额外的检查得以解决。”

最后,GitHub宣布,他们“已经对github.com上现有的所有内容完成了自动扫描,查找可能在我们发现这个漏洞之前就已经推送到我们站点的恶意内容”,并进行了一项修改,确保“托管在github.com上的库不包含任何能够触发该漏洞的恶意工作树。”

查看英文原文:Critical Git and Mercurial Vulnerability on OS X and Windows

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT