xfocus logo xfocus title
首页 焦点原创 安全文摘 安全工具 安全漏洞 焦点项目 焦点论坛 关于我们
English Version

Apache Mod_Security Module堆破坏漏洞


发布时间:2003-10-28
更新时间:2003-10-28
严重程度:
威胁程度:普通用户访问权限
错误类型:边界检查错误
利用方式:服务器模式

BUGTRAQ ID:8919

受影响系统
mod_security mod_security 1.7
mod_security mod_security 1.7.1
未影响系统
mod_security mod_security 1.7.2
详细描述
Apache的mod_security存在基于堆的缓冲区溢出,问题存在于apache2/mod_security.c的sec_filter_out()函数中:

    <snip>

        if (ctx->bufused + len > ctx->buflen) {
            char *newbuffer;
            // todo: implement a smarter extension policy
            unsigned long int newsize = ctx->buflen * 2;

            sec_debug_log(r, 3, "sec_filter_out: expanding buffer to %i", newsize);

            // allocate a larger buffer
            newbuffer = apr_palloc(f->r->pool, newsize + 1);
            memcpy(newbuffer, ctx->buffer, ctx->bufused);
            // free(ctx->buffer);

            ctx->buffer = newbuffer;
            ctx->buflen = newsize;
            ctx->input_ptr = ctx->buffer + ctx->bufused;
        }

        memcpy(ctx->input_ptr, data, len);
        ctx->input_ptr += len;
        ctx->bufused += len;

    </snip>

由于ctx->buffer缓冲区定义太小,如果提交的数据大小大于8KB就可以导致缓冲区溢出,虽然作者做了限制,入站的数据不能超过8KB,但是,如果数据由服务器端脚本生成,就不会又次限制,因此如果服务器端脚本生成大量输出,就可能导致缓冲区溢出。

测试代码
尚无

解决方案
升级程序:

mod_security mod_security 1.7:

mod_security Upgrade mod_security-1.7.2.tar.gz
http://www.modsecurity.org/download/mod_security-1.7.2.tar.gz

mod_security mod_security 1.7.1:

mod_security Upgrade mod_security-1.7.2.tar.gz
http://www.modsecurity.org/download/mod_security-1.7.2.tar.gz

相关信息
Adam Dyga <adeon@o2.pl>.
参考:http://www.securityfocus.com/archive/1/342767
相关主页:http://www.modsecurity.org/