Apache HTTP Server ‘ap_pregsub()’函数本地特权提升漏洞

漏洞起因
设计错误
危险等级

 
影响系统
Apache 2.0.x
Apache 2.2.x
 
 
不受影响系统
 
危害
本地攻击者可以利用漏洞提升特权。
 
攻击所需条件
攻击者必须构建恶意”.htaccess”文件,系统需启用mod_setenvif。
 
漏洞信息
Apache HTTP Server是一款开放源代码的HTTPD服务程序。
“ap_pregsub()”函数(server/utils.c)存在整数溢出,构建特制”.htaccess”文件可触发基于堆的缓冲区溢出。
当使用SetEnvIf损坏头字段时,新的环境变量数据可以是提交头字段大小的倍数。当server/util.c中的ap_pregsub使用
       else if (no < nmatch && pmatch[no].rm_so < pmatch[no].rm_eo) {
            len += pmatch[no].rm_eo – pmatch[no].rm_so;
        }
        
计算缓冲区大小时,会溢出长度字段,并用于在随后分配调用,导致分配的缓冲区过小:
    dest = dst = apr_pcalloc(p, len + 1);
    
之后使用用户提供的数据填充缓冲区时可导致缓冲区溢出。
要触发此漏洞,需启用mod_setenvif并攻击者需要构建特制的.htaccess文件。
 
测试方法
 
厂商解决方案 
目前没有详细解决方案提供:
http://httpd.apache.org/
 
漏洞提供者
halfdog
 

发表评论?

0 条评论。

发表评论