####################################################################### Luigi Auriemma Applicazione: Motore di gioco e giochi sviluppati da Ratbag http://www.ratbaggames.com Giochi/Ver: - Dirt Track Racing <= 1.03 - Dirt Track Racing Australia - Leadfoot - Dirt Track Racing Sprint Cars <= 1.01 - Dirt Track Racing 2 - World of Outlaws Sprint Cars Piattaforme: Windows Bug: CPU al 100%, partita congelata Exploitation: remoto, contro il server Data: 11 Feb 2004 Autore: Luigi Auriemma e-mail: aluigi@autistici.org web: aluigi.org ####################################################################### 1) Introduzione 2) Bug 3) The Code 4) Fix ####################################################################### =============== 1) Introduzione =============== Ratbag e' una software house abbastanza conosciuta nel panorama videoludico per via dei suoi giochi di corse basati sugli sport automobilistici piu' "sporchi e fangosi" che esistano. Proprio il suo gioco piu' famoso Dirt Track Racing infatti ha vinto alcuni premi nel passato. ####################################################################### ====== 2) Bug ====== Il bug e' un congelamento del server (CPU al 100%) causato dal valore che identifica la lunghezza dei dati. Questo valore e' il primo numero a 16 bit presente all'inizio di ogni blocco dati, esso e' letto dal server per sapere quanti bytes devono essere ricevuti e calcolare l'ammontare di dati che rimangono da leggere dal socket per completare il blocco dati. Il problema e' localizzato proprio nella gestione dei sockets infatti il motore di Ratbag usa connessioni TCP su sockets non-bloccanti il che significa che ogni volta che ci sono bytes ancora da leggere il gioco fara' dei controlli infiniti sul socket per vedere se sono arrivati nuovi dati. Quindi ad esempio se un attacker usa il valore 3 ma invia solo 2 bytes il byte rimanente causera' il loop infinito perche' naturalmente lui restera' connesso e non inviera' mai l'ultimo byte. ####################################################################### =========== 3) The Code =========== http://aluigi.org/poc/ratbagcpu.zip ####################################################################### ====== 4) Fix ====== No fix. Nessuna risposta dagli sviluppatori dopo le mie segnalazioni. #######################################################################