Broadcast client crash in Battlefield 1942 1.6.19 and Vietnam 1.2
#######################################################################
Luigi Auriemma
Application: Battlefield 1942 and Vietnam
http://www.battlefield1942.com
Versions: Battlefield 1942 <= 1.6.19
Battlefield Vietnam <= 1.2
Platforms: Windows and Mac
Bug: client crash
Exploitation: remote, versus clients (broadcast)
Date: 07 December 2004
Author: Luigi Auriemma
e-mail: aluigi@xxxxxxxxxxxxx
web: http://aluigi.altervista.org
#######################################################################
1) Introduction
2) Bug
3) The Code
4) Fix
#######################################################################
===============
1) Introduction
===============
Battlefield 1942 and Vietnam are two of the most known and played FPS
games based on the relative military conflicts.
They are developed by Digital Illusions (http://www.dice.se) and have
been released respectively at September 2002 and March 2004.
#######################################################################
======
2) Bug
======
Like any multiplayer game, Battlefield contacts a master server to know
all the available online servers and then automatically queries them
to collect informations in the in-game browser.
The problem is in the parameter "numplayers" of the server's reply that
if is a too big number causes an immediate freeze of the client
followed (after some seconds) by a crash caused by the access to a NULL
pointer.
This is a broadcast client crash so a single attacker visible in the
master server list is able to passively exploit the bug versus any
vulnerable client online.
#######################################################################
===========
3) The Code
===========
http://aluigi.altervista.org/poc/bfcboom.zip
#######################################################################
======
4) Fix
======
Battlefield 1942 1.61b
Battlefield Vietnam 1.21
Note: this patch for Battlefield 1942 corrects, finally, also the known
bug in the old Gamespy cd-key SDK (aka gshboom, 24 February 2004)
used by the game and affecting the servers.
#######################################################################
---
Luigi Auriemma
http://aluigi.altervista.org