安全研究

安全漏洞
百度Hi CSTransfer.dll远程栈溢出漏洞

发布日期:2008-09-13
更新日期:2008-09-16

受影响系统:
Baidu Hi
描述:
BUGTRAQ  ID: 31162

百度Hi是在中国非常流行的即时聊天软件。

百度Hi的CSTransfer.dll库没有严格地检查解码的纯文本格式,如果远程攻击者向客户端发送了特制的报文的话,就可以触发缓冲区溢出,导致执行任意指令。

以下是简单的触发过程:

                                          esi
      +---------------------+              |
      |                     |             \|/
      | Malicious input     |              _______________________________
      |                     ...........>  |  |  |  |  |  |   |   |       |
      +---------------------+             |R |  |4 |0 |  |\r |\n | ....  |
                                          |__|__|__|__|__|___|___|_______|
                                          /|\
                                           |
                                          ebp
      +---------------------+
      |                     |
      | Correct content     |
______________________________________________________
      |                     ...........> |  |   | |  |   |  |   |  |
|  |  |  |   |   |       |
      +---------------------+            | c| m | | 1| . |0 |   |R |
|4 |0 |  |\r |\n | ....  |
        loc_10007880:
|__|___|_|__|___|__|___|__|__|__|__|__|___|___|_______|
        mov     al, [esi-1]               /|\                   /|\
        dec     esi                        |                     |
        cmp     al, 20h                   ebp                   esi
        jnz     short loc_10007890
                 |
  +-------+      |---------------------.
  |       |      |                     |
  |      \|/    \|/                    |
  |     loc_10007888:                  |
  |     mov     al, [esi-1]            |
  |     dec     esi                    |
  |     cmp     al, 20h                |
  |     jz      short loc_10007888     |
  |           |  |                     |
  |-----------+  |    +----------------|
                 |    |
                \|/  \|/
        loc_10007890:
        push    20h
        esi edi
        push    ebp                     +---------------------+
         |   |
        inc     esi                     |                     |
        \|/ \|/
        call    ds:strchr               | Malicious input     |
____________ _______________________________
        mov     edi, eax    --------->  |                     ...>|
        |  |  |  |  |  |   |   |       |
                                        +---------------------+
|heap struct |R |  |4 |0 |  |\r |\n | ....  |
           ...........
|____________|__|__|__|__|__|___|___|_______|

        /|\
       loc_100078EA:
         |
       sub     esi, edi               ;esi will be a negative number
        ebp
       cmp     esi, 1Eh
       jg      loc_100079FD

       push    esi             ; size_t   ;esi will be a negative number
       lea     edx, [esp+44h+var_24]
       push    edi             ; char *
       push    edx             ; char *
       call    ds:strncpy                 ; cause buffer overflow

<*来源:Li Gen (superligen@gmail.com
  
  链接:http://marc.info/?l=bugtraq&m=122132048000769&w=2
*>

建议:
厂商补丁:

Baidu
-----
目前厂商已经在最新版本的软件中修复了这个安全问题,请到厂商的网站下载最新版本或运行已安装版本的自动更新功能:

http://im.baidu.com/

浏览次数:2684
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障