|
#######################################################################
Luigi Auriemma
Application: Alien Arena 2007
http://red.planetarena.org
Versions: <= 6.10 and current SVN
Platforms: Windows and Linux
Bugs: A] in-game format string in safe_bprintf
B] clients disconnection through spoofed client_connect
Exploitation: A] remote versus server
B] remote versus clients
Date: 05 Sep 2007
Author: Luigi Auriemma
e-mail: aluigi@autistici.org
web: aluigi.org
#######################################################################
1) Introduction
2) Bugs
3) The Code
4) Fix
#######################################################################
==============1) Introduction
==============
Alien Arena 2007 is an open source FPS game developed by COR
Entertainment (alias John "Irritant" Diamond) and based on the GPL code
of the Quake 2 engine.
#######################################################################
======2) Bugs
======
----------------------------------------
A] in-game format string in safe_bprintf
----------------------------------------
A format string vulnerability is located in the safe_bprintf function
caused by the usage of cprintf without the needed format argument.
The bug can be exploited in-game (so with the usual possible password
and banning limitations) using a malformed nickname:
from game/acesrc/acebot_cmds.c:
void safe_bprintf (int printlevel, char *fmt, ...)
{
int i;
char bigbuffer[0x10000];
int len;
va_list argptr;
edict_t *cl_ent;
va_start (argptr,fmt);
len = vsprintf (bigbuffer,fmt,argptr);
va_end (argptr);
if (dedicated->value)
gi.cprintf(NULL, printlevel, bigbuffer);
for (i=0 ; i