NULL pointer crash in World in Conflict 1.000
#######################################################################
Luigi Auriemma
Application: World in Conflict
http://www.worldinconflict.com
Versions: <= 1.000
Platforms: Windows
Bug: access to NULL pointer
Exploitation: remote, versus server
Date: 09 Oct 2007
Author: Luigi Auriemma
e-mail: aluigi@xxxxxxxxxxxxx
web: aluigi.org
#######################################################################
1) Introduction
2) Bug
3) The Code
4) Fix
#######################################################################
===============
1) Introduction
===============
World in conflict is a RTS game developed by Massive Entertainment
(http://www.massive.se) and released about a month ago.
#######################################################################
======
2) Bug
======
The server is vulneable to a Denial of Service attack (crash) caused by
the access to a NULL pointer.
The problem happens in the GetMagicNumberString function which takes
the third byte of the data received from the client on the VOIP port
52999 and returns a text string if this value is valid ("ABC" for type
0, "DEF" for 1, "GHI" for 2 and so on) or NULL if it's invalid.
Then the string returned by this function is compared with another one
and here happens the NULL pointer access.
#######################################################################
===========
3) The Code
===========
Connect to the VOIP port of the server (default 52999) with telnet or
netcat and type something like aaaaaaa.
The server will crash immediately.
#######################################################################
======
4) Fix
======
Patch v1.001 (aka Update #001)
#######################################################################
---
Luigi Auriemma
http://aluigi.org
http://forum.aluigi.org
http://mirror.aluigi.org