漏洞起因
设计错误
危险等级
低
影响系统
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 条评论。