####################################################################### Luigi Auriemma Applicazione: Chrome http://www.chromethegame.com Versioni: <= 1.2.0.0 Piattaforme: Windows Bug: lettura e scrittura di memoria non allocata (crash) Exploitation: remoto, contro server Data: 18 Mar 2004 Autore: Luigi Auriemma e-mail: aluigi@autistici.org web: aluigi.org ####################################################################### 1) Introduzione 2) Bug 3) The Code 4) Fix ####################################################################### =============== 1) Introduzione =============== Chrome e' un bel gioco sviluppato da Techland (http://www.techland.pl) ed e' un FPP (First Person Perspective) futuristico ambientato su un pianeta in un altro sistema solare. E' stato pubblicato da Strategy First (http://www.strategyfirst.com) in Giugno 2003. ####################################################################### ====== 2) Bug ====== Il problema e' localizzato nelle istruzioni che seguono: buff = malloc(value); memcpy(buff, packet + 8, value); dove "buff" e' un nuovo buffer allocato, "value" e' un numero a 32 bit residente all'offset 4 di ogni pacchetto inviato dal client e "packet" e' proprio tale pacchetto. Ora noi abbiamo 2 effetti interessanti che hanno lo stesso risultato (server crash): - se "value" e' troppo grande la funzione malloc() fallira' ma non ci sono istruzioni per controllare la riuscita di tale funzione quindi avremo che il gioco tentera' di scrivere in una zona di memoria non valida (0x00000000) - se "value" e' grande ma e' allocabile, memcpy() fallira' perche' il valore e' piu' grande del pacchetto quindi il gioco provera' a leggere dalla memoria non allocata dopo i dati ####################################################################### =========== 3) The Code =========== http://aluigi.org/poc/chromeboom.zip ####################################################################### ====== 4) Fix ====== No fix. Gli sviluppatori parlarono di correggere i loro servers ed eventualmente di rilasciare una patch per gli utenti entro 2 settimane fa', ma non e' stato rilasciato ancora nulla e non ci sono informazioni da parte loro. #######################################################################