####################################################################### Luigi Auriemma Applicazione: Chaser http://www.chasergame.com Versioni: <= 1.50 Piattaforme: Windows Bug: crash (lettura di memoria non allocata) Exploitation: remoto, sia il client che il server sono vulnerabili Data: 03 Feb 2004 Autore: Luigi Auriemma e-mail: aluigi@autistici.org web: aluigi.org ####################################################################### 1) Introduzione 2) Bug 3) The Code 4) Fix ####################################################################### =============== 1) Introduzione =============== Chaser e' un first person shooter sviluppato da Cauldron (http://www.cauldron.sk) usando il motore di gioco CloakNT ed e' stato rilasciato da JoWood (http://www.jowood.com) in Giugno 2003. ####################################################################### ====== 2) Bug ====== La struttura di un pacchetto di Chaser e' come la seguente: 00 00 00 00 00 ff 00 00 | | | grandezza dei dati che iniziano all'offset 14 16 bit checksum http://aluigi.org/papers/chaser_crc.h Il problema e' proprio nel valore che specifica la grandezza dei dati infatti se esso e' troppo grande il gioco leggera' tutta la quantita' di memoria specificata sino al raggiungimento di una zona di memoria non allocata che causera' l'eccezione. La seguente e' l'istruzione che causa il crash nel server dedicato 1.50: :0050C89F F3A5 rep movsd ####################################################################### =========== 3) The Code =========== Per testare il server di Chaser: http://aluigi.org/poc/chasercrash.zip Anche il client e' affetto dalla vulnerabilita' ma la pericolosita' naturalmente e' davvero minima, comunque ho scritto un proof-of-concept anche per questo caso: http://aluigi.org/poc/chaser-client.zip ####################################################################### ====== 4) Fix ====== Nessun fix. Cauldron non ha risposto alle mie mails. #######################################################################