Git任意代码执行漏洞检测与修复(CVE-2018-11235)

检测漏洞方法

检测漏洞有两种方法:

1.通过查看git客户端版本

git --version

如果版本低于2.13.7肯定存在漏洞
如果版本高于2.13.7请比对下面的版本

版本2.13.x,小于2.13.7则存在漏洞
版本2.14.x ,小于 2.14.4则存在漏洞
版本2.15.x,小于 2.15.2则存在漏洞
版本2.16.x,小于 2.16.4则存在漏洞
版本2.17.x,小于 2.17.1则存在漏洞

2.通过git命令检测

cd /tmp

git init test && cd test && git update-index --add --cacheinfo 120000,e69de29bb2d1d6434b8b29ae775ad8c2e48c5391,.gitmodules
  • 如果只出现下面的提示,证明存在漏洞

“Initialized empty Git repository in /tmp/test/.git/”

  • 如果出现下面的提示,证明漏洞已被修复

“Initialized empty Git repository in /tmp/test/.git/
error: Invalid path ‘.gitmodules‘
fatal: git update-index: --cacheinfo cannot add .gitmodules”

修复漏洞方法

1.Mac OS

  • 通过brew更新git
    不知道brew是什么的请自行搜索
brew install git

如果看到下面的提示,表示你需要强制更新
"Error: The brew link step did not complete successfully
The formula built, but is not symlinked into /usr/local"

  • 强制更新命令:
brew link --overwrite git`

更新完毕后,再用上面的方法检测漏洞
如果出现下面的提示,证明漏洞已被修复!!!
“Initialized empty Git repository in /tmp/test/.git/
error: Invalid path ‘.gitmodules‘
fatal: git update-index: --cacheinfo cannot add .gitmodules”

2.CentOS

找了半天,貌似只能通过源码安装,如果有人知道如何yum安装请私信

cd /tmp
wget https://www.kernel.org/pub/software/scm/git/git-2.17.1.tar.gz
tar zxf git-2.17.1.tar.gz
cd git-2.17.1
sudo ./configure
sudo make
sudo make install

3.Ubuntu

sudo add-apt-repository ppa:git-core/ppa

4.Windows

https://gitforwindows.org/ 可以下载

参考文档

https://www.edwardthomson.com/blog/upgrading_git_for_cve2018_11235.html
http://blog.nsfocus.net/cve-2018-11235/
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-11235

原文地址:http://blog.51cto.com/355665/2123320

时间: 2024-10-09 03:49:24

Git任意代码执行漏洞检测与修复(CVE-2018-11235)的相关文章

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

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

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最终值

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以

漏洞预警 | 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字段构造恶意代码利用该漏洞,在受影响服务器上执行系统命令,进一步可完全控制该服务

phpcms前台任意代码执行漏洞(php<5.3)

phpcms v9 中 string2array()函数使用了eval函数,在多个地方可能造成代码执行漏洞 /phpsso_server/phpcms/libs/functions/global.func.php /** * 将字符串转换为数组 * * @param string $data 字符串 * @return array 返回数组格式,如果,data为空,则返回空数组 */ function string2array($data) { if($data == '''') return

Drupal Core 8 PECL YAML 反序列化任意代码执行漏洞(CVE-2017-6920

漏洞背景:2017年6月21日,Drupal官方发布了一个编号为CVE-2017- 6920 的漏洞,影响为Critical.这是Drupal Core的YAML解析器处理不当所导致的一个远程代码执行漏洞,影响8.x的Drupal Core. 漏洞复现:1.打开网页先登录一个管理员账号.2.访问 http://你的ip:8080/admin/config/development/configuration/single/import3.然后如下图所示:第二个随便填.poc:!php/object

[2012-4-10]ThinkPHP框架被爆任意代码执行漏洞

昨日(2012.04.09)ThinkPHP框架被爆出了一个php代码任意执行漏洞,黑客只需提交一段特殊的URL就可以在网站上执行恶意代码. ThinkPHP作为国内使用比较广泛的老牌PHP MVC框架,有不少创业公司或者项目都用了这个框架.不过大多数开发者和使用者并没有注意到本次漏洞的危害性,提醒:此漏洞是一个非常严重的问题,只要使用了thinkphp框架,就可以直接执行任意php代码,使用thinkphp框架的各位站长赶快对自己的网站进检测,并修复. 修复方法: 1.下载官方发布的补丁: h

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