在Ghostscript中发现一个漏洞,该漏洞可能允许代码执行

几年前 他们发布新闻的日子 确定了什么 Ghostscript中的漏洞(CVE-2020-15900) 有什么可能 导致文件修改和任意命令执行 打开特殊格式的PostScript文档时。

对于那些不熟悉Ghostscript的人应该知道 这是Postscript和PDF内容的渲染引擎 并且通常用于将PDF和Postscript文档转换为图像以进行预览,缩略图和打印。

它还可用于许多PDF查看器的高质量文档复制,包括Android上的流行查看器,并已获得Google等多家大型公司的许可,可在云中进行渲染。

关于Ghostscript中的漏洞

该错误是在使用rsearch运算符时发现的 非标准PostScript 在允许导致uint32_t类型溢出的文档中 在计算尺寸时, 从缓冲区覆盖内存区域 分配并获得对文件系统上文件的访问权限,该文件可用于发起攻击以在系统上执行任意代码(例如,通过向〜/ .bashrc或〜/ .profile添加命令)。

AFL找到的代码片段将一个空字符串推到堆栈上:空括号(),复制对此的引用,生成一个带有两个空字符串()()的堆栈,然后进行反向查找。 换句话说,它是从头开始在空字符串中寻找空字符串。

不幸的是,他们错过了搜索空字符串的临界情况。 当搜索一个空字符串时,这被定义为立即成功:没有要搜索的内容,因此我们跳到最后。 但是,结果必须分为匹配前,匹配和匹配后的值。 不幸的是,该代码假定我们至少看过一次,并且通过从零中减去4,294,967,295来错误地计算了比赛后结果的长度,导致返回最大值:XNUMX。

这个错误 这是内存损坏缺陷,可能会导致故障 而且它一直在发生。 无需处理堆栈保护措施等,只需在大型内存段中读取和写入所需内容即可。 对于那些不是经验丰富的漏洞利用开发者的人来说,使用它非常容易。

由于这种下溢,此字符串从未分配过,也没有占用实际空间, 但是它的长度延伸到了另一个记忆。 尝试以随机地址读取或写入该内存将超出内存限制,因此将导致所有模糊测试失败。 但是,我们可以使用以下代码段存储引用,以允许其使用:

重要的是要考虑到 Ghostscript中的漏洞更为严重因为此软件包已在许多流行的PostScript和PDF处理应用程序中使用。 例如,在桌面上创建缩略图,在后台为数据建立索引以及转换图像时,将调用Ghostscript。

在许多情况下,要成功进行攻击,只需在Nautilus中下载漏洞利用文件或浏览带有该文件的目录就足够了。

还可以通过映像驱动程序利用Ghostscript中的漏洞 基于ImageMagick和GraphicsMagick程序包,传递一个JPEG或PNG文件,该文件包含PostScript代码而不是图像(此文件将在Ghostscript中处理,因为内容可以识别MIME类型,而不取决于扩展名)。

该问题影响版本9.50至9.52 (该漏洞自9.28rc1版本就已经存在,但据发现该漏洞的研究人员称,该漏洞自9.50版以来出现)。

但是,除此之外,在9.52.1版中已经提出了修复程序,并且更新已发布 一些Linux发行版(例如Debian,Ubuntu和SUSE)的补丁程序包。

而RHEL中的软件包不受影响。

数据来源: https://insomniasec.com


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。