####################################################################### 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 unrealfp -x 2 -c "STEAMBLOB B=" SERVER PORT ####################################################################### ====== 4) Fix ====== No fix. #######################################################################