免费下载!由 O’Reilly 出版的《NGINX 完全指南》中文版已正式上线 了解详情
写点什么

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

  • 2014-12-22
  • 本文字数:908 字

    阅读完需:约 3 分钟

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

2014-12-22 23:311876
用户头像

发布了 1008 篇内容, 共 357.4 次阅读, 收获喜欢 332 次。

关注

评论

发布
暂无评论
发现更多内容

小谈音视频质量检测

箭上有毒

音视频 5月日更

你习惯写注释吗?

ES_her0

5月日更

模块四作业

c

架构实战营

图像灰度与灰阶的纠结:gray level/scale译文释义

老猿Python

灰度 图形图像处理 数字图像处理 灰阶 gray scale

用 Python 打印九九乘法表 - DAY7

Qien Z.

Python 5月日更

我的Serverless实战—玩转腾讯云Wordpress

liuzhen007

Serverless 5月日更

架构实战训练营 - 模块4 - 作业

Presley

网络攻防学习笔记 Day16

穿过生命散发芬芳

5月日更 网络攻防

K8s二开之 client-go 初探

雪雷

Kubernetes Go 语言

系统思考力建立3个简单操纵方法

风翱

系统性思考 5月日更

SimpleDateFormat线程不安全的5种解决方案!

王磊

Java 后端 5月日更

zstd c++ string 压缩&解压

hashyong

c++ 程序员 架构 5月日更 zstd

perf + 火焰图用法 小结

hashyong

程序员 架构 5月日更 perf

下周极客时间课程学习计划

IT蜗壳-Tango

5月日更

IOS端音频的采集与播放

floer rivor

音视频

模块四:课后作业

黄先生

架构训练营

缓存数据一致性 - 架构师峰会演讲实录

万俊峰Kevin

缓存 微服务 cache 分布式缓存 Go 语言

【LeetCode】二叉树的堂兄弟节点Java题解

Albert

算法 LeetCode 5月日更

《Spring 手撸专栏》| 开篇介绍,我要带新人撸 Spring 啦!

小傅哥

spring 后端 小傅哥 面经 手撸Spring

🍃【Spring原理系列】让你知道真正的“AOP”

洛神灬殇

spring aop 面向切面 spring aop 5月日更

MySQL 数据库学习笔记(2)

lenka

5月日更

垄断

小天同学

商业 市场垄断 5月日更

比物理线程都好用的C++20的协程,你会用吗?

华为云开发者联盟

事件驱动 嵌入式 事件 主循环 C++20

三大业界大佬的DevOps解决方案

码语者

DevOps

构建可靠的磁盘系统:故障判定和自动化处理

焱融科技

云原生 运维自动化 高性能 分布式存储 超融合

Python 正则表达式

若尘

正则表达式 正则 Python编程 5月日更

密码学系列之:IDEA

程序那些事

IDEA 密码学 程序那些事

Docker 存储调整的几种方法

运维研习社

Docker 5月日更 存储管理

Golang 别名类型

escray

学习 极客时间 Go 语言 5月日更

CampusBulider(模模搭)学习笔记6:室内搭建

ThingJS数字孪生引擎

3D可视化 数字孪生

LeetCode题解:341. 扁平化嵌套列表迭代器,DFS,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

Git和Mercurial在OS X和Windows上现严重漏洞_微软_Sergio De Simone_InfoQ精选文章