首页 -> 安全研究

安全研究

安全漏洞
Apache Mod_Access_Referer NULL指针引用远程拒绝服务攻击漏洞

发布日期:2003-04-16
更新日期:2003-04-22

受影响系统:
mod_access_referer mod_access_referer 1.0.2
描述:
BUGTRAQ  ID: 7375
CVE(CAN) ID: CVE-2003-1054

Apache Mod_Access_Referer模块可实现基于"Referer" HTTP头字段的访问控制。

Mod_Access_Referer模块解析非法HTTP Referer头字段时存在问题,远程攻击者可以利用这个漏洞对Apache进行拒绝服务攻击。

在find_allowdeny()函数中,uri_components结构的"uptr"由Apache ap_parse_uri_components函数初始化,这个结构"hostname"指针回提供给is_ip()函数用于判断由referer字段的值是否为IP地址或主机名。相关代码如下:

        --- -snip snip- ---


         ap_parse_uri_components (r->pool,
                                       ap_table_get
                                       (r->headers_in,
                                       "Referer"),
                                        &uptr);


         if (!is_ip (uptr.hostname)) {


         --- -snip snip- ---


static int
is_ip (const char *host)
{
        /* this just tests if it matches [\d.]* */
        /* XX is a better test needed? */
        while ((*host == '.') || ap_isdigit (*host))
                host++;
                
        return (*host == '\0');
}


         --- -snip snip- ---

当服务器接收到不正确的referer头字段,ap_parse_uri_components会不初始化uptr.hostname指针,这就导致is_ip()会读取NULL指针而发生段错误,产生服务崩溃。

<*来源:zillion (zillion@snosoft.com
  
  链接:http://lists.netsys.com/pipermail/full-disclosure/2003-April/009233.html
*>

建议:
临时解决方法:

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

* 非官方补丁如下:

http://sourceforge.net/project/showfiles.php?group_id=924&release_id=151905

厂商补丁:

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

http://accessreferer.sourceforge.net/

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