<<< Date Index >>>     <<< Thread Index >>>

Infostring crash and shutdown in the Quake 3 engine



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

                             Luigi Auriemma

Application:  Quake 3 engine
              http://www.idsoftware.com
Games:        - Call of Duty                                     <= 1.5
              - Call of Duty: United Offensive                  <= 1.51
              - Heavy Metal: F.A.K.K.2                          <= 1.02
              - Quake III Arena                                 <= 1.32
              - Return to Castle Wolfenstein                    <= 1.41
              - Soldier of Fortune II: Double Helix             <= 1.03
              - Star Trek Voyager: Elite Force                  <= 1.20
              - Star Trek: Elite Force II                       <= 1.10
              - Star Wars Jedi Knight II: Jedi Outcast          <= 1.04
              - Star Wars Jedi Knight: Jedi Academy            <= 1.011
              - Wolfenstein: Enemy Territory             <= 1.02 / 2.56
              ...possibly others
Platforms:    Windows, Linux and Mac
Bug:          crash or shutdown caused by incorrect handling of big
              queries
Exploitation: remote, versus server
Date:         12 Feb 2005
Author:       Luigi Auriemma
              e-mail: aluigi@xxxxxxxxxxxxx
              web:    http://aluigi.altervista.org


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


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


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

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


The Quake 3 engine is the well known game engine developed by ID
Software (http://www.idsoftware.com) and is used by many games.

Some months ago I reported similar problems in three games based on
this engine: Medal of Honor, Call of Duty and Soldier of Fortune II.
Except for Medal of Honor that is affected by a specific buffer
overflow, the other two games can be "probably" included in this
advisory too but I'm not totally sure.


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

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


The Quake 3 engine has problems to handle big queries allowing an
attacker to shutdown any game server based on this engine:

  ERROR: Info_SetValueForKey: oversize infostring

In some of the vulnerable games is also possible to crash the server.


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

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


http://aluigi.altervista.org/poc/q3infoboom.zip

A simple scanner for testing any game based on the Quake 3 engine.


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

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


Only the two Call of Duty games have been fixed with the 1.5b and 1.51b
patches, all the others are still vulnerable.

I have released an universal patcher that limits the amount of handled
data in the queries from 1023 to 767 solving the problem in any game:

  http://aluigi.altervista.org/patches/q3infofix.zip


(only in Heavy Metal: F.A.K.K.2 is needed to reduce the amount of
handled data to less than 512 instead of 767)


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


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