安全研究

安全漏洞
CUPS HP-GL/2过滤器缓冲区溢出漏洞

发布日期:2008-10-09
更新日期:2008-10-13

受影响系统:
Apple Mac OS X 10.5.5
Apple Mac OS X 10.4.11
Easy Software Products CUPS < 1.3.9
不受影响系统:
Easy Software Products CUPS 1.3.9
描述:
BUGTRAQ  ID: 31688
CVE(CAN) ID: CVE-2008-3641

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

CUPS的惠普图形语言过滤器(HP-GL/2)没有对pen width和pen color opcode执行充分的边界检查,可能导致覆盖任意内存并以hgltops进程uid的权限执行任意指令。

filter/hpgltops.h:

       typedef struct
       {
         float rgb[3]; /* Pen color */
         float width;  /* Pen width */
       } pen_t;

       VAR pen_t Pens[1024]; /* State of each pen */

filter/hpgl-attr.c:PW_pen_width():

       float w;
       ...
[323]  w = (float)hypot(PlotSize[0], PlotSize[1]) / 1016.0f * 72.0f;

       if (num_params == 0)
         w *= 0.01f;
       else
[328]    w *= params[0].value.number;
       ...
       pen = (int)params[1].value.number;

[335]  Pens[pen].width = w;

在[355]行没有对用户提供的索引值执行检查,攻击者可以控制PlotSize[0]和PlotSize[1]的值。如果将opcode PS和pen width值选择为1.0并在[328]行提供适当的乘数,攻击者就可以使用任意数据覆盖内存地址。

filter/hpgl-attr.c:PC_pen_color():

       i = (int)params[0].value.number;
       ...
       Pens[i].rgb[0] = (params[1].value.number - ColorRange[0][0]) /
                        (ColorRange[0][1] - ColorRange[0][0]);
       Pens[i].rgb[1] = (params[2].value.number - ColorRange[1][0]) /
                        (ColorRange[1][1] - ColorRange[1][0]);
       Pens[i].rgb[2] = (params[3].value.number - ColorRange[2][0]) /
                        (ColorRange[2][1] - ColorRange[2][0]);

<*来源:regenrecht
  
  链接:http://secunia.com/advisories/32226/
        http://www.cups.org/str.php?L2911
        http://marc.info/?l=bugtraq&m=122365393714572&w=2
        http://support.apple.com/kb/HT3216
        https://www.redhat.com/support/errata/RHSA-2008-0937.html
*>

测试方法:

警 告

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

http://www.cups.org/strfiles/2911/ZDI-CAN-367.rb

建议:
厂商补丁:

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

http://www.apple.com/support/downloads/securityupdate2008007serverleopard.html
http://www.apple.com/support/downloads/securityupdate2008007clientleopard.html

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

http://www.cups.org/software.php?VERSION=1.4svn-r7995&FILE=cups/1.3.9/cups-1.3.9-source.tar.bz2

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

浏览次数:2407
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障