一个月后,图像处理软件ImageMagick再次被发现存在高危漏洞(CVE-2016-5118),可导致本地或可能的远程代码执行,由ImageMagick5.5.2 发展出来的图像处理软件GraphicsMagick亦存在此漏洞。
ImageMagick是一款开源的图像处理软件,该软件能用作创建、编辑、合成图片,支持多种编程语言,包括Perl、C++、PHP、Python、Ruby和NodeJS等,因此被众多网站大量应用于识别、裁剪、或调整用户上传的图片。
GraphicsMagick是ImageMagick的一个分支,号称图像处理领域的瑞士军刀。 短小精悍的代码却提供了一个鲁棒、高效的工具和库集合,来处理图像的读取、写入等操作,支持超过88种图像格式,包括重要的DPX、GIF、JPEG、JPEG-2000、PNG、PDF、PNM和TIFF,可以在Linux、Mac、Windows等绝大多数的平台上使用。GaphicsMagick支持大图片的处理,能够动态的生成图片,特别适用于互联网的应用。GaphicsMagick不仅支持命令行的模式,同时也支持C、C++、Perl、PHP、Tcl、Ruby等的调用。
漏洞危害
当GraphicsMagick和ImageMagick打开文件时,如果文件名的第一个字符为“|”,则文件名会被传递给shell程序使用POSIX函数popen()执行,文件打开操作由源文件blob.c中的OpenBlob()函数处理。攻击者可借助文件名利用该漏洞执行shell代码。
影响范围
此漏洞可影响众多网站、博客、社交媒体平台和内容管理系统(CMS),例如WordPress、Drupal等各种可上传图片的网站,特别是可批量裁剪图片的网站。对企业用户威胁较大。
漏洞检测
启明星辰天镜脆弱性扫描与管理系统V6.0目前已经支持对该漏洞进行检测:
请天镜脆弱性扫描与管理系统V6.0产品的用户尽快升级到最新版本,及时对该漏洞进行检测,以便尽快采取防范措施。
漏洞库升级
天镜脆弱性扫描与管理系统V6.0已于2016年6月2日紧急发布针对ImageMagick漏洞的升级包,用户升级天镜漏扫产品漏洞库后即可对ImageMagick漏洞进行扫描:
6070版本升级包为607000024,升级包下载地址:
http://www.venustech.com.cn/DownFile/575/
6061版本升级包为6000458,升级包下载地址:
http://www.venustech.com.cn/DownFile/456/
漏洞修复建议
方案一:修改源代码,重新编译GraphicsMagick和ImageMagick
GraphicsMagick在文件magick/blob.c中增加以下内容:
#undef HAVE_POPEN
ImageMagick在文件MagickCore/blob.c中增加:
#undef MAGICKCORE_HAVE_POPEN
在配置文件中增加如下内容:
<policy domain="path" rights="none" pattern="|*" />
方案二:关注官方网站,及时升级到最新版本
目前厂商已经发布了升级补丁以修复此安全问题,详情请关注厂商主页: http://www.graphicsmagick.org/
PS:启明星辰还贴心提供ImageMagick&GraphicsMagick本地漏洞检测工具,提供给没有天镜脆弱性扫描与管理系统V6.0产品的用户对该漏洞进行检测:
1.运行ImageMagick-graphicmagic.py;
2. 执行结果如下:
有需要的用户请联系启明星辰当地客户代表获取本地漏洞检测工具。