####################################################################### Luigi Auriemma Applicazione: Call of Duty series http://www.callofduty.com Versioni: Call of Duty <= 1.5b Call of Duty United Offensive <= 1.51b Call of Duty 2 <= 1.3 Piattaforme: Windows, Linux e Mac Bug: buffer-overflow attraverso il comando callvote map Exploitation: remoto, contro server (in-game) Data: 24 Sep 2006 Autore: Sindre Dahl Advisory: Luigi Auriemma e-mail: aluigi@autistici.org web: aluigi.org ####################################################################### 1) Introduzione 2) Bug 3) The Code 4) Fix ####################################################################### =============== 1) Introduzione =============== Call of Duty e' il famoso gioco FPS militare sviluppato da Infinity Ward (http://www.infinityward.com) e pubblicato da Activision (http://www.activision.com). Il primo episodio del gioco e' stato rilasciato ad Ottobre 2003 mentre Call of Duty 2 due anni dopo. ####################################################################### ====== 2) Bug ====== callvote e' un comando utilizzato dai clients per chiedere al server di iniziare una votazione per la selezione di una nuova mappa, per kickare qualche giocatore e cosi' via. Il voto e' abilitato di default sui server. La stringa "callvote map MAP" viene gestita da una funzione del server che prende il parametro MAP e lo copia (memcpy) in un buffer locale di 64 bytes. Da notare che in alcune versioni del gioco questo buffer locale e' situato nello stack mentre in altre e' statico. ####################################################################### =========== 3) The Code =========== Digitare il serguente comando nella console del gioco: /callvote map aaaaaaa...(185_'a's)...aaaaaaa In Call of Duty 70 'a' sono piu' che sufficienti ####################################################################### ====== 4) Fix ====== Ho creato alcune patch non ufficiale per tutte le ultime versioni del gioco sia per Windows che Linux: http://aluigi.org/patches/codmapboffix.lpatch #######################################################################