Borland StarTeam 含多个远程溢出及拒绝服务漏洞

来源:岁月联盟 编辑:zhuzhu 时间:2008-03-06
Borland StarTeam 含多个远程溢出及拒绝服务漏洞 受影响系统:
Borland StarTeam server 2008 <= 10.0.0.57
Borland StarTeam MPX <= 6.7

描述:
Borland Starteam是Borland公司ALM生命周期管理的核心工具,是目前市面上最好的软件配置管理工具之一。

Starteam服务器没有正确地计算为从客户端所接收到的某些数组所需分配的内存数,导致多个整数溢出漏洞。在PROJECT_LOGIN和SET_SERVER_ACL命令中,有32位从客户端所接收到的用于指定报文中条目数量的数字分别被乘以8(或4,具体取决于文件名名称或规范)和12,然后未经考虑32位的限制便将结果用于分配内存,这可能触发堆溢出,允许安全者控制某些寄存器,导致执行恶意指令。但安全者必须拥有有效帐号才能利用这些漏洞。

StarTeam MPX也存在多个溢出和拒绝服务漏洞:

------------------------------------------------------------
A] 剩余数据计算整数溢出
------------------------------------------------------------

STMessageBroker67和STMulticastService67进程所使用的TmsgBufMsgDeserializeEx函数用于对入站数据执行还原序列化操作。协议由报文中顺序排列的三类数据组成:列表,数组(16字节固定大小)和剩余数据。在计算剩余数据大小时存在整数溢出,如果使用了少于报文中所指定的数组数量的话,就可以触发这个溢出。但成功利用这个漏洞只能导致服务崩溃,因为无法利用任意数据覆盖服务器的内存。

---------------------------------------------
B] 列表处理堆溢出
---------------------------------------------

列表中包含的初始32位值指定报文中列表组所占的字节数,其中每个列表为16位大小值,之后为其中所声明数量的数据。由于服务器没有检查目标缓冲区的大小,允许安全者利用之后的堆溢出导致服务崩溃或执行任意指令。

---------------------------------------------------
C] 无法分配内存导致进程终止
---------------------------------------------------

用于计算所要分配的以下数据数量时:

报文大小
列表大小
数组数 * 16
头大小

如果无法分配上述大小数量内存的话,就会导致服务器终止。

厂商补丁:
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.borland.com/