安全研究

安全漏洞
Sun Solaris uustat -S命令行参数溢出漏洞

发布日期:2006-01-10
更新日期:2006-01-10

受影响系统:
Sun Solaris 9.0
Sun Solaris 8.0
不受影响系统:
Sun Solaris 10.0
描述:
BUGTRAQ  ID: 16200

Solaris是一款由Sun开发和维护的商业性质UNIX操作系统。

Solaris的/usr/bin/uustat二进制程序中存在缓冲区溢出漏洞,成功利用这个漏洞的攻击者可以完全控制执行函数的返回地址,以uucp用户权限执行任意代码。

如果“-S”命令行参数后的字符串长度大于或等于1152字节的话,就可能导致二进制程序崩溃。

下面实例显示缓冲区被溢出,o1寄存器被字母A完全覆盖:

bash-2.03% ls -l /usr/bin/uustat
---s--x--x   1 uucp     uucp    62012 Jan 17 16:07 uustat

bash-2.03$ /usr/bin/uustat -S `perl -e 'print "A"x3000'`
Segmentation Fault
bash-2.03$
(gdb) info registers
g0             0x0      0
g1             0xff315e98       -13541736
g2             0x1cc00  117760
g3             0x440    1088
g4             0x0      0
g5             0x0      0
g6             0x0      0
g7             0x0      0
o0             0xff3276a8       -13470040
o1             0x41414141       1094795585
...



<*来源:Angelo Rosiello (guilecool@usa.com
        iDEFENSE
  
  链接:http://www.idefense.com/intelligence/vulnerabilities/display.php?id=366
        http://sunsolve.sun.com/search/printfriendly.do?assetkey=1-26-101933-1
*>

建议:
临时解决方法:

* 如果要临时解决上述漏洞,从uucp(1C)和uustat(1C)二进制程序中删除set-user-ID位,如下:

    # chmod u-s /usr/bin/uucp                  
    # chmod u-s /usr/bin/uustat

注意:从uucp(1C)和uustat(1C)二进制程序删除set-user-ID位会导致非特权用户无法使用uucp(1C)和uustat(1C)命令访问调用设备,如调制解调器。

厂商补丁:

Sun
---
Sun已经为此发布了一个安全公告(Sun-Alert-101933)以及相应补丁:
Sun-Alert-101933:Security Vulnerabilities in uucp(1C) and uustat(1C)
链接:http://sunsolve.sun.com/search/printfriendly.do?assetkey=1-26-101933-1

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