#Original Advisory: http://aluigi.org/adv/ut3steamer-adv.txt
#
#######################################################################

                             Luigi Auriemma

Application:  Unreal Tournament III
              http://www.unrealtournament3.com
Versions:     <= 2.1 (aka 3809)
Platforms:    Windows (tested) and Linux
Bug:          unitialized pointer
Exploitation: remote, versus server
Date:         17 Jul 2010
Author:       Luigi Auriemma
              e-mail: aluigi@autistici.org
              web:    aluigi.org


#######################################################################


1) Introduction
2) Bug
3) The Code
4) Fix


#######################################################################

===============
1) Introduction
===============


Unreal Tournament III is currently the latest game (2007) of the Unreal
series created by Epic Games (http://www.epicgames.com).


#######################################################################

======
2) Bug
======


The game implements a particular command called STEAMBLOB which is
handled in any case even if Steam is not running.

This command accepts three arguments that are C, N and B and just this
last one (doesn't matter what value it has) is the cause of a problem
during the handling of some pointers that are left unitialized.
The effect is the crash of the whole server due to the access to
invalid memory or a NULL pointer.

It's enough only one UDP packet to exploit the vulnerability so there
are no limitations.


#######################################################################

===========
3) The Code
===========


http://aluigi.org/fakep/unrealfp.zip
https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/14414.zip (unrealfp.zip)

  unrealfp -x 2 -c "STEAMBLOB B=" SERVER PORT


#######################################################################

======
4) Fix
======


No fix.


#######################################################################