Lucene search

K
seebugRootSSV:3271
HistoryMay 10, 2008 - 12:00 a.m.

rdesktop多个缓冲区溢出漏洞

2008-05-1000:00:00
Root
www.seebug.org
13

0.959 High

EPSS

Percentile

99.5%

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并用于计算将要读取到堆缓冲区中的字节数。上述减法运算可能下溢,之后导致堆溢出。

rdesktop 1.5.0
rdesktop

目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

<a href=“http://rdesktop.cvs.sourceforge.net/rdesktop/rdesktop/rdp.c?annotate=1.102&amp;pathrev=HEAD#l1337” target=“_blank”>http://rdesktop.cvs.sourceforge.net/rdesktop/rdesktop/rdp.c?annotate=1.102&amp;pathrev=HEAD#l1337</a>