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(网友投票)