CUPS服务器cups/ipp.c文件内存破坏漏洞

受影响系统:

Easy Software Products CUPS < 1.3.7-18

不受影响系统:

Easy Software Products CUPS 1.3.7-18

描述:
Common Unix Printing System(CUPS)是一款通用Unix打印系统,是Unix环境下的跨平台打印解决方案,基于Internet打印协议,提供大多数PostScript和raster打印机服务。

CUPS服务器解析IPP报文的方式存在释放后使用漏洞,能够给向CUPS服务器发送IPP请求的恶意用户可以利用这个漏洞导致CUPS服务器崩溃或以CUPS服务器的权限执行任意代码。

漏洞起因是不同内存分配程序之间的不匹配。在IPP协议中,属性可能包含有多个值,每个值都有分类。在CUPS数据模型中,指定属性的所有值都必须为相同的或兼容的类型。

字符串类型通过StrAlloc分配程序分配了值,Unknown类型使用的是malloc。如果对属性的第一个值指定的标签为56,由于该值没有对应到任何特定的值类型,因此为unknown。但由于该值的标签范围检查,因此也接受为兼容,CUPS不会拒绝这个请求,使用malloc分配了unknown值,然后使用StrAlloc分配了剩余的值。在释放内存中请求时,对所有的值都使用了free(),包括使用StrAlloc所分配的值。

<*来源:Emmanuel Bouillon
  
  链接:
https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=624438
        https://www.redhat.com/support/errata/RHSA-2010-0811.html
*>

建议:

厂商补丁:

Easy Software Products
———————-
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

https://bugzilla.redhat.com/attachment.cgi?id=438968&action=diff

RedHat
——
RedHat已经为此发布了一个安全公告(RHSA-2010:0811-01)以及相应补丁:
RHSA-2010:0811-01:Important: cups security update
链接:
https://www.redhat.com/support/errata/RHSA-2010-0811.html

发表评论?

0 条评论。

发表评论