####################################################################### Luigi Auriemma Applicazione: FlatFrag http://www.tzi.de/~jfk/projects/flatfrag/ Versioni: <= 0.3 Piattaforme: Windows, Linux ed altre Bugs: A] buffer-overflow B] NULL pointer crash Exploitation: remoto, contro server Data: 02 Nov 2005 Autore: Luigi Auriemma e-mail: aluigi@autistici.org web: aluigi.org ####################################################################### 1) Introduzione 2) Bugs 3) The Code 4) Fix ####################################################################### =============== 1) Introduzione =============== FlatFrag e' uno sparatutto multiplayer open source sviluppato da Johannes Kuhlmann. ####################################################################### ======= 2) Bugs ======= ------------------ A] buffer-overflow ------------------ La funzione receiver() in server/loop.c contiene 3 buffer-overflow causati dall'utilizzo di strcpy() per copiare la versione, il nome ed il modello inviati dal client in 3 buffers rispettivamente di 64, 32 e 32 bytes. --------------------- B] NULL pointer crash --------------------- Quando il server riceve il comando NT_CONN_OK da un client non connesso chiama la funzione net_on_receive(NULL, NULL) che e' un puntatore di funzioni il quale legge i dati contenuti nello steam passato come secondo argomento. Il problema e' proprio nei puntatori NULL passati alla funzione che portano all'immediato crash del server. ####################################################################### =========== 3) The Code =========== http://aluigi.org/poc/flatfragz.zip ####################################################################### ====== 4) Fix ====== No fix. I bugs saranno corretti nella prossima versione. #######################################################################