lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20080916191002.93b7de30.aluigi@autistici.org>
Date: Tue, 16 Sep 2008 19:10:02 +0100
From: Luigi Auriemma <aluigi@...istici.org>
To: bugtraq@...urityfocus.com, full-disclosure@...ts.grok.org.uk,
	packet@...ketstormsecurity.org, cert@...t.org
Subject: Failed assertion in the Unreal engine


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

                             Luigi Auriemma

Application:  Unreal engine
              http://www.unrealtechnology.com
Versions:     the games which have been tested and resulted vulnerable
              are Unreal Tournament 3 1.3, Unreal Tournament 2003 and
              2004, Dead Man's Hand, Pariah, WarPath, Postal2, Shadow
              Ops and possibly others.
              instead those which "seem" to be not vulnerable (using
              their default configuration) are: Fuel of War, America's
              Army, Men of Valor, Star Wars Republic Commando, SWAT4
              and some older gamess based on the Unreal engine 1 (like
              UT'99)
Platforms:    Windows, Linux, Mac
Bug:          server termination caused by failed assertion
Exploitation: remote, versus server
Date:         16 Sep 2008
Thanx to:     Luigi "Gioggiolo"
Author:       Luigi Auriemma
              e-mail: aluigi@...istici.org
              web:    aluigi.org


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


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


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

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


The Unreal engine is the game engine developed by Epic Games
(http://www.epicgames.com) and used in many famous commercial games of
which the main example is just the lucky Unreal Tournament series.


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

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


Exists an assert() in the Unreal engine which shuts down the engine if
the "Closing" flag in UnChan.cpp is set, probably referred to the
closed state of output channel:

  "Assertion failed: !Closing [File:.\UnChan.cpp] [Line: XXX]"

The only way I have found for exploiting this vulnerability is through
the request of downloading two or more files from the server, which
means that the attacker must join the target server because doesn't
seem possible to use the File channel from outside.

I'm not aware of other easiest or alternative ways for exploiting this
specific vulnerability.


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

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


http://aluigi.org/fakep/unrealfp.zip

  unrealfp -d all SERVER PORT


#################################################a######################

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


No fix

Exist at least 2 easy work-arounds for this vulnerability:

- setting "AllowDownloads=false" in the INI file of the game.
  naturally this method can't solve the problem if exist other ways
  (of which I'm not aware at the moment) to exploit this vulnerability

- disabling the "!Closing" assertion (tests performed on the Windows
  and Linux servers of some games), the list of the bytes to modify
  with a hex editor is available here:

    http://aluigi.org/patches/unrealoadfix.txt

- there is a "strange" way that has avoided the termination of the
  server (and I report it here only for thoroughness) through the
  enabling of the map voting (like [xVoting.xVotingHandler] and
  bMapVote=True in the INI of UT2003 and UT2004)


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


--- 
Luigi Auriemma
http://aluigi.org

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ