安全研究
安全漏洞
安全漏洞
所有系统
AIX
BSD(eg,OpenBSD)
Digital Unix
HP-UX
IRIX
Linux
FreeBSD
SCO UNIX
SunOS
Solaris
Windows
所有类型
远程进入系统
本地越权访问
拒绝服务攻击
嵌入恶意代码
Web数据接口
其他类型
Solaris su组件本地空指针引用漏洞
发布日期:
2010-10-12
更新日期:
2010-10-18
受影响系统:
Sun Solaris 10.0_x86
Sun Solaris 10.0
描述:
BUGTRAQ ID:
43972
CVE ID:
CVE-2010-3503
Solaris是一款由Sun开发和维护的商业UNIX操作系统。
Solaris的su组件中存在空指针引用漏洞:
521 for (j = 0; initenv[j] != 0; j++) { [1]
522 if (initvar = getenv(initenv[j])) { [2]
...
535 } else {
536 var = (char *)
537 malloc(strlen(initenv[j]) [3]
538 + strlen(initvar)
539 + 2);
540 (void) strcpy(var, initenv[j]); [4]
在从继承的环境创建新的环境时su继承了LC_ALL和TZ等定义值,[1]处的调用从数值的数组中获取了所要继承的值,之后在[2]处执行了一些检查,但没有检查返回值便在[3]处将变量传送给可控的malloc()。如果malloc()失败,就会返回0x0并在[4]处传送给strcpy(),导致了空指针引用:
Program terminated with signal 11, Segmentation fault.
#0 0xd1244734 in ?? ()
(gdb) x/i $pc
0xd1244734: mov %eax,(%edi)
(gdb) i r $eax
eax 0x415f434c 1096762188 <- OUR STRING
(gdb) i r $edi
edi 0x0 0 <- NULL PTR
Incurred fault #6, FLTBOUNDS %pc = 0xD1244734
siginfo: SIGSEGV SEGV_MAPERR addr=0x00000000
Received signal #11, SIGSEGV [default]
siginfo: SIGSEGV SEGV_MAPERR addr=0x00000000
<*来源:prdelka
链接:
http://secunia.com/advisories/41829/
http://www.us-cert.gov/cas/techalerts/TA10-287A.html
http://www.oracle.com/technetwork/topics/security/cpuoct2010-175626.html
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
http://www.exploit-db.com/exploits/15245/
建议:
厂商补丁:
Oracle
------
Oracle已经为此发布了一个安全公告(cpuoct2010)以及相应补丁:
cpuoct2010:Oracle Critical Patch Update Advisory - October 2010
链接:
http://www.oracle.com/technetwork/topics/security/cpuoct2010-175626.html
浏览次数:
2679
严重程度:
0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障
关于我们
公司介绍
公司荣誉
公司新闻
联系我们
公司总部
分支机构
海外机构
快速链接
绿盟云
绿盟威胁情报中心NTI
技术博客