0x00 漏洞背景
2019年8月2日晚,Artifex官方在ghostscriptf的master分支上提交合并Bug 701394的修复。旨在修复 CVE-2019-10216 漏洞。该漏洞可以直接绕过 ghostscript 的安全沙箱,导致攻击者可以读取任意文件或命令执行。
ghostscript应用广泛,ImageMagick、python-matplotlib、libmagick 等图像处理应用均有引用。
0x01 漏洞详情
.buildfont1 该指令在执行的时候没有正确保护堆栈中的安全状态,导致 -dSAFER 安全沙箱状态被绕过。
在此次针对修复的地方是为全部 .forceput 这一特殊指令增加 executeonly 限制。关于这两个字段的详细说明可以参见往期预警
CVE-2019-6116: ghostscript沙箱绕过命令执行漏洞预警 – 360CERT
0x02 影响版本
commit 5b85ddd19a8420a1bd2d5529325be35d78e94234 均受到影响
ghostscript作为图像处理格式转换的底层应用。
漏洞导致所有引用ghostscript的上游应用受到影响。 涉及但不限于:
- imagemagick
- libmagick
- graphicsmagick
- gimp
- python-matplotlib
- texlive-core
- texmacs
- latex2html
- latex2rtf 等
0x03 修复建议
建议更新到(5b85ddd19a8420a1bd2d5529325be35d78e94234)之后的版本,或者直接重新拉取master分支进行更新
debain/redhat 等发行版均以更新上游package
P.S. redhat 5,6 均超出支持年限范围,请广大用户注意,及时进行手动修复更新
CVE-2019-10216 – Red Hat Customer Portal
若无法更新可先尝试禁用使用gs解析ps文件
使用ImageMagick,建议修改policy文件(默认位置:/etc/ImageMagick/policy.xml),在 <policymap> 中加入以下<policy>(即禁用 PS、EPS、PDF、XPS coders、PCD):
<policymap>
<policy domain="coder" rights="none" pattern="PS" />
<policy domain="coder" rights="none" pattern="EPS" />
<policy domain="coder" rights="none" pattern="PDF" />
<policy domain="coder" rights="none" pattern="XPS" />
<policy domain="coder" rights="none" pattern="PCD" />
</policymap>
但 taviso 提到 policy 是十分宽松的,可能会存在一些没有提及的格式存在绕过。
360CERT 建议用户及及时进行版本升级,同时对线上涉及图像、pdf等格式的处理的服务进行版本自查。
0x04 时间线
2019-08-02 Artifex官方在主分支上更新补丁
2019-08-12 360CERT监测到各发行版漏洞预警
2019-08-13 360CERT发布预警