Borland StarTeam Multicast服务用户请求解析远程栈溢出漏洞
发布日期:2008-04-03
更新日期:2008-04-07
受影响系统:Borland CaliberRM 2006 9.0.809.000
描述:
BUGTRAQ ID:
28602
CVE(CAN) ID:
CVE-2008-0311
Borland CaliberRM是Borland所捆绑的开发部署解决方案中的企业软件要求管理软件。
CaliberRM的可选组件StarTeam多播服务在处理用户请求时存在缓冲区溢出漏洞,远程攻击者可能利用此漏洞控制服务器。
StarTeam多播服务组件(STMulticastService)负责解析处理用户请求的函数PGMWebHandler::parse_request实现上存在典型的栈溢出漏洞。相关的代码如下:
.text:003AA15D call PGMWebHandler::parse_request(char const *,uint,char *,uint,http_request_info_t&)
...
.text:003AA35E loc_3AA35E:
.text:003AA35E mov al, [ebx]
.text:003AA360 cmp al, 0Ah
.text:003AA362 mov [edx], al ; edx points to the stack, overflowable because of the loop
.text:003AA364 jnz loc_3AA4EF
...
.text:003AA36A mov byte ptr [edx+1], 0
.text:003AA36E mov al, byte ptr [esp+618h+lbuff]
.text:003AA372 cmp al, 0Dh
.text:003AA374 jz loc_3AA509
...
.text:003AA4F0 loc_3AA4F0:
.text:003AA4F0 mov eax, [esp+618h+count]
.text:003AA4F4 mov ecx, [esp+618h+req_len]
.text:003AA4FB inc ebx
.text:003AA4FC inc eax
.text:003AA4FD cmp eax, ecx
.text:003AA4FF mov [esp+618h+count], eax
.text:003AA503 jl loc_3AA35E ; loop back up
在搜索结束HTTP请求的标准0x0a0d时,一个循环将攻击者所提供的数据逐个拷贝到了固定大小的栈缓冲区。如果发送了足够大的请求的话,就可能覆盖返回地址、SEH指针和其他栈上数据。
<*来源:iDEFENSE
链接:
http://secunia.com/advisories/29631/
http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=675
*>
建议:
临时解决方法:
* 禁用多播服务的监听端口:
1 停止StarTeam多播服务
2 导航到Message Broker安装下的\Standard子目录
3 在文本编辑器中打开pgmopts.def文件
4 找到带有monitor_port字符串的行,应类似于:
createopt pgmmap_monitor_port str_list pgm_monitor_port,monitor_port
createopt pgm_monitor_port numeric 3057
5 如下更改这些定义行:
createopt pgmmap_monitor_port str_list pgm_monitor_port,monitor_port
createopt pgm_monitor_port numeric 0
6 保存更改
7 重启StarTeam多播服务
厂商补丁:
Borland
-------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.borland.com/浏览次数:2642
严重程度:0(网友投票)