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(网友投票)