[VulnWatch] Unreal engine: results of my research

From: Auriemma Luigi (aluigi@pivx.com)
Date: Wed Feb 05 2003 - 07:58:07 EST


After almost 3 months, I have finally decided to release the huge
advisory/paper about bugs founded in the Unreal engine and all the relative
code for the vulnerabilities exploitation (plus some tools that I have
written during the reversing of the engine).

The link for get the english advisory is:

http://www.pivx.com/luigi/adv/ueng-adv.txt

And this is the link for the italian version:

http://www.pivx.com/luigi/adv/ueng-adv-ita.txt

The games interested by the vulnerabilities are really a lot and the
following is a list of games based on Unreal engine and that have
implemented its network engine:

    - Star Trek: The Next Generation: Klingon Honor Guard
    - Unreal
    - The Wheel of Time
    - Deus Ex
    - Mobile Forces
    - Rune
    - Unreal Tournament
    - Hired Guns
    - Navy Seals
    - TNN Outdoor Pro Hunter
    - Werewolf
    - X-Com: Alliance
    - Adventure Pinball
    - America's Army
    - Unreal Tournament 2003
    - future games (if the developers will not use a fixed
      Unreal engine) like DeusEx2, Duke Nukem Forever,
      Postal 2, Thief III and XIII just for example

The following is a very quick list of the bugs I have found:

1] Unreal engine doesn't have an handshake between client and server,
   so an attacker can create DoS, DDoS and bounce attacks with spoofed
   UDP packets.

2] Unreal engine uses challenge keys to identify each match but, I
   don't know why, seems that the server doesn't really manage the
   keys in the client's answers and furthermore it doesn't make other
   checks to avoid an attacker easily adding faked players to the
   server.

3] The Unreal engine has problems managing negative long numbers
   (used for specify the size of data).
- If an attacker use negative numbers in network packets, the Unreal
   server will allocate an amount of RAM that is equal to the number
   without the sign or crash if the amount of bytes is greater than
   the available memory.
- If the attacker uses package files (the maps for example) he can
   easily execute code on the machine that launch the file, because
   the bug used in package file allows the attacker to overwrite the
   EIP register and upload all his code (no size limitations) in
   memory.

4] Problems with Unreal URLs (unreal://...)

Unfortunally there are no patches at the moment because (as everyone can
understood) Epic Games after almost 3 months has not taken seriously these
problems and I am sorry for have waited too much time for release the
documents (Bugtraq timeout is less than a week and generally I wait maximum
1 month; 3 months are really too too much!)

BYEZ

---
PivX Security Researcher
http://www.pivx.com/luigi/



This archive was generated by hypermail 2.1.7 : Wed Apr 09 2008 - 22:21:39 EDT