安全研究

安全漏洞
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(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障