rdesktop多个缓冲区溢出漏洞

SBEUGID:SEBUGV2008053271
发布时间:2008-05-07
受影响版本:
rdesktop 1.5.0
描述:
BUGTRAQ ID: 29097
CVE(CAN) ID: CVE-2008-1801,CVE-2008-1802,CVE-2008-1803

rdesktop是实现RDP协议的开源客户端,允许基于Unix的用户登录到Windows终端服务器。

rdesktop负责重新分配动态缓冲区的代码(channel_process())中存在堆溢出漏洞。rdesktop的xrealloc()函数使用有符比较判断所请求的分配大小是否小于1。如果小于1的话,这个函数错误的将分配大小设置为1,这导致分配了错误大小的堆缓冲区,之后会被溢出。

rdesktop负责在RDP重新定向请求中执行读操作的代码(process_redirect_pdu())存在缓冲区溢出。在解析重新定向请求时,rdesktop客户端从请求报文中读取了一些32位的整数,然后使用这些整数控制读入到静态分配缓冲区中的字节数,这可能会溢出一些位于BSS部分中的缓冲区。

rdesktop负责在RDP请求中执行读操作的代码(iso_recv_msg())存在堆溢出漏洞。在读取请求时,直接从报文中获得了代表之后跟随字节数的16位整数,然后将这个值递减4并用于计算将要读取到堆缓冲区中的字节数。上述减法运算可能下溢,之后导致堆溢出。
<* 参考:
http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=698
http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=697
http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=696
*>
建议:
rdesktop
--------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://rdesktop.cvs.sourceforge.net/rdesktop/rdesktop/rdp.c?annotate=1.102&pathrev=HEAD#l1337
// Sebug.net [ 2008-05-10 ]

本安全信息由SEBUG翻译整理,版权所有,未经许可,不得转载

提交信息 | 本站声明 | 帮助 | 论坛 | 合作伙伴
Copyright © SEBUG Security Database 2006  All rights Reserved.
鄂ICP备05024839号