安全研究

安全漏洞
id Tech 4游戏引擎idGameLocal::GetGameStateObject()远程代码执行漏洞

发布日期:2010-06-21
更新日期:2010-06-22

受影响系统:
id Software id Tech 4 engine
描述:
BUGTRAQ  ID: 41001

id Tech 4之前被称为Doom 3引擎,是由id Software所开发的游戏引擎。

在加入到游戏服务器时客户端会使用服务器所返回的connectResponse报文中的一个32位字段,通过idGameLocal::GetGameStateObject函数调用内部结构中的一些函数指针,这可能会导致执行恶意代码。

以下是调用函数指针指令之前的利用路径:

  1A29326F   69D2 0C610000    IMUL EDX,EDX,610C                     ; step 1
  1A293275   8D8432 78370300  LEA EAX,DWORD PTR DS:[EDX+ESI+33778]  ; step 2
  1A29327C   50               PUSH EAX
  1A29327D   8BCE             MOV ECX,ESI
  1A29327F   E8 6CFDFFFF      CALL gamex86.1A292FF0
                              |
  /---------------------------/
  V
  ...
  1A293000   8BB4BD 04610000  MOV ESI,DWORD PTR SS:[EBP+EDI*4+6104] ; step 3
  1A293007   85F6             TEST ESI,ESI
  1A293009   74 10            JE SHORT gamex86.1A29301B
  1A29300B   8BCE             MOV ECX,ESI
  1A29300D   E8 1EB10000      CALL gamex86.1A29E130
                              |
  /---------------------------/
  V
  1A29E130   8B49 04          MOV ECX,DWORD PTR DS:[ECX+4]  ; step 4
  1A29E133   85C9             TEST ECX,ECX
  1A29E135   74 08            JE SHORT gamex86.1A29E13F
  1A29E137   8B01             MOV EAX,DWORD PTR DS:[ECX]    ; step 5
  1A29E139   8B10             MOV EDX,DWORD PTR DS:[EAX]    ; step 6
  1A29E13B   6A 01            PUSH 1
  1A29E13D   FFD2             CALL EDX                      ; code execution
  1A29E13F   C3               RETN
---

<*来源:Luigi Auriemma (aluigi@pivx.com
  
  链接:http://aluigi.altervista.org/adv/idtech4carray-adv.txt
        http://secunia.com/advisories/40277/
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

http://aluigi.altervista.org/poc/idtech4carray.zip

建议:
厂商补丁:

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

http://www.idsoftware.com

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