积极预防 及时发现
快速响应 力保恢复
Solaris lpq 存在堆缓冲溢出缺陷 (SunOS,补丁)
发布时间:2003-04-02 信息来源:管理员

涉及程序: Sun Solaris 描述: Solaris lpq 存在堆缓冲溢出缺陷 详细: lpq是SunOS/BSD协调包中的命令,用于显示打印队列的内容。lpq由于在处理用户提供的数据时,缺乏正确的范围检测,导致产生堆缓冲溢出缺陷。利用该缺陷,攻击者通过提交精心构造的数据,能获得root权限,并在系统上运行任意代码。 实际上,/usr/ucb/lpq 是一个标记,连接到/usr/bin/lpstat。lpstat是依照调用的程序名进行操作,如果是“lpq”,lpstat将运行在BSD style或System V style上。lpq的bsd_queue()函数调用strcat()函数将用户提供的数据拷贝到固定大小的缓冲中,由于没有检测拷贝数据的长度,攻击者通过向目标系统提供超长数据串,将触发缓冲溢出缺陷。利用该缺陷,本地攻击者能获得系统的root权限。 Solaris 8/9使用strlcat()函数去执行数据串拷贝,因此避免了缓冲溢出缺陷,将不受该缺陷影响。 受影响的版本: Sun Solaris 2.5.1 (SPARC/x86) Sun Solaris 2.6 (SPARC/x86) Sun Solaris 7 (SPARC/x86) 攻击方法: 暂无有效攻击代码 解决方案: 目前厂商已公布该缺陷补丁,请用户及时下载: Solaris 2.6 106235-12 Solaris 2.6_x86 106236-12 Solaris 7 107115-12 Solaris 7_x86 107116-12 临时解决方案: 禁用lpstat(lpq)的suid root属性: # chmod a-s /usr/bin/lpstat 附加信息: CAN-2003-0091