####################################################################### Luigi Auriemma Applicazione: FunLabs games http://www.funlabs.com Giochi: 4X4 Off-road Adventure III Cabela's Big Game Hunter 2004 Season Cabela's Big Game Hunter 2005 Cabela's Dangerous Hunts Cabela's Deer Hunt 2005 Season Revolution Secret Service - In harm's Way Shadow Force: Razor Unit US Most Wanted: Nowhere To Hide ... probabilmente altri Piattaforme: Windows Bugs: A] socket irraggiungibile B] accesso a memoria non allocata Exploitation: remoto, contro server (B parzialmente in-game) Data: 20 Mar 2005 Autore: Luigi Auriemma e-mail: aluigi@autistici.org web: aluigi.org ####################################################################### 1) Introduzione 2) Bugs 3) The Code 4) Fix ####################################################################### =============== 1) Introduzione =============== FunLabs e' una software house che sviluppa giochi a basso costo solitamente pubblicati da Activision (http://www.activisionvalue.com). ####################################################################### ======= 2) Bugs ======= ------------------------- A] socket irraggiungibile ------------------------- Il motore utilizza un socket asincrono tramite FIONREAD che ritorna la lunghezza dell'ultimo pacchetto ricevuto dal socket. Se un attacker invia un pacchetto UDP vuoto il server sara' incapace di sapere se e' arrivato un nuovo pacchetto (in quanto ioctlsocket continua a ritornare uno zero) e quindi non puo' piu' gestire nuovi pacchetti. --------------------------------- B] accesso a memoria non allocata --------------------------------- Questo in-game bug parziale avviene quando un attacker setta i due numeri a 16 bits nel pacchetto usato per accedere alla partita sul server a dei valori massimi. Facendo cio' si forza il server a copiare una gran quantita' di dati dal buffer contenente il pacchetto appena ricevuto ad uno nuovo ma andando a leggere la memoria non allocata posizionata dopo il buffer sorgente che e' piu' breve. Cio' causa l'immediata terminazione del server. ####################################################################### =========== 3) The Code =========== http://aluigi.org/poc/funlabsboom.zip ####################################################################### ====== 4) Fix ====== No fix. Nessuna risposta dal vendor. #######################################################################