####################################################################### Luigi Auriemma Applicazioni: Call of Duty <= 1.5b Call of Duty: United Offensive <= 1.51b Call of Duty 2 1.0 http://www.callofduty.com Piattaforme: Windows e vecchie versioni per Linux (Mac non e' stato testato ma dovrebbe essere vulnerabile anche lui) Bug: crash 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 =============== Call of Duty ed il suo expansion pack United Offensive sono i famosi giochi militari in prima persona sviluppati da Infinity Ward (http://www.infinityward.com) e Gray Matter Studios (http://www.gmistudios.com) e pubblicato da Activision (http://www.activision.com). I giochi sono stati rilasciati rispettivamente ad Ottobre 2003 e Settembre 2004. ####################################################################### ====== 2) Bug ====== Il server di gioco contiene un problema nella costruzione dei comandi per la visualizzazione dei messaggi inviati dai clients. Se tali messaggi sono troppo grandi ed il comando generato e' maggiore di 1024 bytes il server mostra un dialog box dell'exception handler con un avviso riguardo un possibile buffer-overflow e naturalmente la partita viene interrotta. Questo e' un in-game bug quindi un attacker deve avere accesso al server, cioe' se e' protetto da password lui deve conoscere la parola chiave e comunque la sua cd-key puo' essere bannata visto che i servers di CoD usano l'autorizzazione online. ####################################################################### =========== 3) The Code =========== - scarica il seguente file: http://aluigi.org/poc/codmsgboom.cfg - salvalo nella directory di base del gioco: main or uo - avvia un client ed un server - partecipa alla partita sul server - vai nella console del client (tasto ~) - digita: /exec codmsgboom - il server crashera' immediatamente mostrando un errore ####################################################################### ====== 4) Fix ====== No fix. Gli sviluppatori non sono stati contattati visto che gia' esiste un altro bug non patchato da oltre un mese (infostring overflow) che e' molto piu' semplice da sfruttare di questo nuovo Windows-only dove gli attackers possono essere bannati e tracciati. 23 Jul 2005: I have written a simple patch that requires the modification of only one byte. That is possible limiting the allowed client strings to less than 1024, like about 896 bytes (we need to calculated the maximum visualized string that includes also the client nickname and other parameters!): http://aluigi.org/patches/codmsgfix.lpatch #######################################################################