####################################################################### Luigi Auriemma Applicazione: Star Wars Jedi Knight: Jedi Academy http://www.lucasarts.com/products/jediacademy/ Versioni: <= 1.011 Piattaforme: Windows, Linux e Mac Bug: buffer-overflow durante la visualizzazione dei messaggi Exploitation: remoto, contro server (in-game) Data: 02 Apr 2005 Autore: Luigi Auriemma e-mail: aluigi@autistici.org web: aluigi.org ####################################################################### 1) Introduzione 2) Bug 3) The Code 4) Fix ####################################################################### =============== 1) Introduzione =============== Jedi Academy e' un first person shooter che utilizza il motore di Quake 3, e' sviluppato da Raven Software (http://www.ravensoft.com) e pubblicato da LucasArts (http://www.lucasarts.com). E' stato rilasciato a Settembre 2003. ####################################################################### ====== 2) Bug ====== Il gioco e' vulnerabile ad un buffer-overflow nella funzione di visualizzazione chiamata G_Printf(). Questa funzione utilizza uno sprintf() con un buffer locale di 1024 bytes dove viene immagazzinata la stringa di testo da mostrare nella console quindi se un attacker invia un messaggio molto grande (tramite i comandi say e tell ad esempio) il server chiama G_Printf() per visualizzare una stringa simile all'esempio seguente: say: NICKNAME: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaa\n Il risultato e' che un attacker potrebbe eseguire codice malevolo sul server della vittima. L'unica limitazione e' che questo e' un in-game bug quindi l'attacker deve avere accesso al server, se e' protetto da password lui deve conoscere la parola chiave. ####################################################################### =========== 3) The Code =========== - scarica il seguente file: http://aluigi.org/poc/jamsgbof.cfg - salvalo nella directory di base del gioco: GameData\base - avvia un client ed un server - partecipa alla partita sul server - vai nella console del client (shift + ~) - digita: /exec jamsgbof - il server crashera' immediatamente con l'indirizzo di ritorno sovrascritto da 0x61616161 ####################################################################### ====== 4) Fix ====== No fix. Il gioco "dovrebbe" essere non piu' supportato. #######################################################################