首页 -> 安全研究

安全研究

安全漏洞
Solaris priocntl系统调用设计错误导致权限提升漏洞

发布日期:2002-11-27
更新日期:2002-11-29

受影响系统:
Sun Solaris 9.0
Sun Solaris 8.0_x86
Sun Solaris 8.0
Sun Solaris 7.0_x86
Sun Solaris 7.0
Sun Solaris 2.6_x86
Sun Solaris 2.6sparc
Sun Solaris 2.5.1
Sun Solaris 2.5
描述:
BUGTRAQ  ID: 6262
CVE(CAN) ID: CVE-2002-1296

Solaris是一款由Sun Microsystems公司开发和维护的商业UNIX操作系统。

Solaris中的priocntl在调用参数时对用户的数据缺少正确过滤,本地攻击者可以利用这个漏洞无需ROOT权限指定加载任意内核模块,或在核心态下执行任意代码。

Solaris中的priocntl系统调用用于进程切换控制,其调用方法如下:

long priocntl(idtype_t idtype, id_t id, int cmd, /* arg */ ...);

当'cmd'参数设置为PC_GETCID时,就会加载第四个参数所指定的模块,而priocntl()调用模块的时候没有任何权限的检查。priocntl系统调用加载内核模块的缺省路径是kernel/sched和/usr/kernel/sched(除非你在/etc/system文件中指定的其他路径),虽然这两个路径只有ROOT权限可读,我们不能写这两个目录来指定自己的模块,但是,由于priocntl()对'../'字符缺少正确处理,可导致本地攻击者利用这个漏洞指定任意目录中的模块进行装载,或在核心态下执行任意代码。

<*来源:侯杰 (jerryhj@yeah.net
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=103842619803173&w=2
        http://www.hacker.com.cn/newbbs/dispbbs.asp?boardID=8&RootID=23110&ID=23110
        http://sunsolve.sun.com/pub-cgi/retrieve.pl?doctype=coll&doc=secbull/Alert-49131&type=0&nav=sec.sba
*>

建议:
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* Casper Dik <Casper.Dik@Sun.COM>提供如下临时解决方法:

由于"pc_clname[]"参数限制了大小,用下面的脚本可以防止这个特殊漏洞

for dir in /kernel /usr/kernel
do
        cd $dir
        mkdir -p a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p
        mv sched a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p
        ln -s a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/sched .
done

厂商补丁:

Sun
---
Sun已经为此发布了一个安全公告(Sun-Alert-49131):
Sun-Alert-49131:Security Vulnerability Involving the priocntl(2) System Call
链接:http://sunsolve.sun.com/pub-cgi/retrieve.pl?doctype=coll&doc=secbull/Alert-49131&type=0&nav=sec.sba

补丁下载:

目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新补丁

浏览次数:3773
严重程度:11(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障