Ghostscript无限递归调用远程代码执行漏洞

受影响系统:

Ghostscript Ghostscript 8.70
Ghostscript Ghostscript 8.64
Ghostscript Ghostscript 8.62
Ghostscript Ghostscript 8.61

描述:

Ghostscript是用于显示PostScript文件或向非PostScript打印机打印这些文件的程序。

Ghostscript解释器没有正确的处理某些无限递归调用情况。如果.ps文件中包含有类似于以下的序列:

/A{pop 0 A 0} bind def
/product A 0

递归调用就会耗尽解释器的内部栈。在这种情况下解释器会跳转到栈末尾(或越界)的地址继续执行,通常会触发分段错误。但通过更改调用到无限递归过程之前的变量定义数,攻击者也可以获得对跳转地址的控制。结合引入shellcode,最终可能导致执行任意代码。

<*来源:Dan Rosenberg
  
  链接:
http://marc.info/?l=full-disclosure&m=127362409526702&w=2
        https://bugs.launchpad.net/ubuntu/+source/ghostscript/+bug/546009
*>

测试方法:

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

 

 

http://launchpadlibrarian.net/41836803/infinite.ps

建议:

厂商补丁:

Ghostscript
———–
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.ghostscript.com/

发表评论?

0 条评论。

发表评论