长 亭 漏 洞 预 警
GhostScript 沙箱绕过
(任意文件读写)漏洞
(CVE-2018-17961)
事件来源
距离上一次 GhostScript 沙盒绕过漏洞,仅过了不到两个月,在 10 月 9 号,Tavis Ormandy 通过公开邮件列表,又一次指出 GhostScript 的安全沙箱可以被绕过,通过构造恶意的图片内容,将可以造成以当前用户权限的任意文件读写:
https://seclists.org/oss-sec/2018/q4/28
GhostScript 被许多图片处理库所使用,如 ImageMagick、Python PIL 等,默认情况下这些库会根据图片的内容将其分发给不同的处理方法,其中就包括 GhostScript。
ImageMagick 是一款广泛使用的图像处理软件,有相当多的网站使用它来进行图像处理。它被许多编程语言所支持,包括 Perl,C++,PHP,Python 和 Ruby 等,并被部署在数以百万计的网站,博客,社交媒体平台和流行的内容管理系统(CMS),例如 WordPress 和 Drupal。
Python PIL 是 Python 语言中处理图片的第三方模块。
漏洞描述
此漏洞导致攻击者可以通过上传恶意构造的图像文件,当目标服务器在对图像进行图像裁剪、转换等处理时即会执行攻击者指定的恶意文件读写操作。攻击者可通过利用此漏洞对特定文件的内容进行篡改,从而进一步达到任意命令执行的目的。
Ubuntu 16.04 本地使用最新版 GhostScript 9.25 测试 PoC,成功读取/etc/passwd文件,以及向~/.bashrc写入命令后门:
ImageMagick 7.0.8-12 测试:
GhostScript 沙盒每次绕过,都会造成大范围大面积的严重安全影响。无论是前两年还是前两个月的沙盒绕过漏洞,都造成过国内外诸多厂商及开源程序中招,并且许多厂商因此遭受严重损失。
影响范围
使用 GhostScript、ImageMagick 等对来源由用户可控的图像数据进行图像处理的网站和程序。
解决方案
尽管目前官方 git 已经提交相关修复的 commit:
但现在 GhostScript 官网下载的最新版 9.25 依然可以利用此漏洞。
故作为临时缓解方案,可以参考:
1. 卸载 GhostScript
以 Ubuntu 系统为例,执行以下命令以卸载 GhostScript:
sudo apt-get remove ghostscript
2. 修改 ImageMagick 的 policy 文件,默认位置为/etc/ImageMagick/policy.xml,在
中加入以下
(即禁用PS、EPS、PDF、XPScoders):
参考资料
https://seclists.org/oss-sec/2018/q4/28
https://bugs.chromium.org/p/project-zero/issues/detail?id=1682
领取专属 10元无门槛券
私享最新 技术干货