安全研究

安全漏洞
Apache HTTPD suexec多个本地权限提升漏洞

发布日期:2007-04-11
更新日期:2007-04-12

受影响系统:
Apache Group suEXEC 2.2.3
描述:
BUGTRAQ  ID: 23438
CVE(CAN) ID: CVE-2007-1741

suexec二进制程序是Apache HTTP服务程序软件包中的帮助工具,允许以脚本所有者的权限而不是服务程序的权限运行脚本。

suexec工具实现上存在多个漏洞,可能允许攻击者以其他用户的权限执行任意指令。

1) 补丁检查竞争条件漏洞

在获得当前目录与更改到该目录之间存在一个竞争条件;在更改到一个目录与检查该目录不是链接之间存在另一个竞争条件。在上述这些操作之间目录结构可能会发生变化,导致对攻击者所选择的任意目录执行lstat()操作。攻击者可以通过重新命名父目录或使用符号链接来利用这些漏洞。

此外在最终符号链接检查与执行目标二进制程序之间页存在一个竞争条件,目录结构可能会在这些调用之间发生变化,导致符号链接检查无效。

2) 路径检查设计错误

suexec工具使用strncmp()检查当前目录是否为文档根目录的子目录。如果目录以相同的序列开始但包含有额外内容的话,这种检查就会成功。例如,如果文档根目录为/var/www/html,则对于/var/www/html_backup和/var/www/htmleditor测试都会成功。

上述检查没有核实到CGI脚本的路径是否为正常的文件。如果路径指向了适当用户和组所有的子目录,且父目录为适当的用户和组所有,就会接受该路径。

3) 任意组Id输入验证漏洞

即使用户不是指定组的成员,suexec二进制程序也会允许从命令行参数所获得的任意用户/组值的组合。如果加载了/proc文件系统的话,攻击者就可以结合其他漏洞来利用这个漏洞。每当suexec丢弃其权限并更改UID和GID时,/proc/{PID}下的所有文件和目录都会将其所有者更改为相应的值。由于suexec进程可以无条件地更改UID和GID,因此可以很容易的创建任意UID和GID所有的文件。

<*来源:iDEFENSE
  
  链接:http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=511
*>

建议:
临时解决方法:

* 删除suexec二进制程序的set-uid位:

  # chmod -s /path/to/suexec

厂商补丁:

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

http://httpd.apache.org/

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