发布日期:2010-01-27
更新日期:2010-01-28受影响系统:
Apache Group Apache 1.3.x
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 37966
CVE(CAN) ID: CVE-2010-0010Apache HTTP Server是一款流行的Web服务器。Apache服务器的mod_proxy模块在执行字符类型转换时存在最终可导致堆溢出的整数溢出漏洞。以下是有漏洞的代码段:"./src/modules/proxy/proxy_util.c"
long int ap_proxy_send_fb(BUFF *f, request_rec *r, cache_req *c, off_t len, int nowrite, int chunked, size_t recv_buffer_size)
{...
size_t buf_size;
long remaining = 0;
... for (end_of_chunk = ok = 1; ok;) {
...
if (chunked) {
long chunk_start = 0;
n = 0; /* start of a new chunk */
if (end_of_chunk) {
end_of_chunk = 0;
/* get the chunk size from the stream */
chunk_start = ap_getline(buf, buf_size, f, 0); <---------------- [0] reading line from traffic (socket)
if ((chunk_start <= 0) || ((size_t)chunk_start + 1 >= buf_size) || !ap_isxdigit(*buf)) {
n = -1;
}
/* parse the chunk size */
else {
remaining = ap_get_chunk_size(buf); <---------------- [1] convert readed data to "long" size!
if (remaining == 0) { /* Last chunk indicated, get footers */
...
...
}
}
else if (remaining < 0) {
n = -1;
ap_log_rerror(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r,
"proxy: remote protocol error, invalid chunk size");
}
}
} /* read the chunk */
if (remaining > 0) {
n = ap_bread(f, buf, MIN((int)buf_size, (int)remaining)); <------------- [2] convert "long" to "int" !!!!
if (n > -1) {
remaining -= n;
end_of_chunk = (remaining == 0);
}
}
...
...
}服务器在读取HTTP头时,如果是分块连接,在[0]处会等待并从套接字读取块大小的数据,在[1]处将所接收到的数据转换为long类型;如果存在正值的块大小,[2]处直接将long类型转换为int类型,这在amd64架构上可能触发整数溢出。<*来源:Adam Zabrocki (pi3ki31ny@wp.pl)
链接:http://site.pi3.com.pl/adv/mod_proxy.txt
http://secunia.com/advisories/38319/
*>测试方法:
--------------------------------------------------------------------------------警 告以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!http://site.pi3.com.pl/adv/mod_proxy.txt建议:
--------------------------------------------------------------------------------
厂商补丁:Apache Group
------------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:http://www.apache.orgIBM DB2 REPEAT()函数远程堆溢出漏洞IBM DB2 kuddb2服务远程拒绝服务漏洞相关资讯 漏洞
- 快递官网漏洞泄露 1400 万用户信息 (08/12/2014 08:37:42)
- 要389目录服务器访问绕过漏洞 (10/01/2012 09:18:08)
- ASUS Net4Switch "ipswcom.dll" (03/02/2012 09:32:42)
| - 软件漏洞是一笔大买卖! (10/06/2012 08:28:32)
- PHPCMS V9.1.13任意文件包含漏洞分 (08/01/2012 07:23:17)
- Open Handset Alliance Android (03/01/2012 06:59:34)
|
本文评论 查看全部评论 (0)
评论声明- 尊重网上道德,遵守中华人民共和国的各项有关法律法规
- 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
- 本站管理人员有权保留或删除其管辖留言中的任意内容
- 本站有权在网站内转载或引用您的评论
- 参与本评论即表明您已经阅读并接受上述条款
<
|