####################################################################### Luigi Auriemma Applicazione: Soldier of Fortune II http://www.ravensoft.com/soldier2.html Versioni: 1.02, 1.03 le vecchie versioni non sembrano essere vulnerabili Piattaforme: Windows, Linux e MacOS Bug: crash causato da un puntatore della memoria invalido Exploitation: remoto, contro server (in-game) Data: 24 Feb 2005 Autore: Luigi Auriemma e-mail: aluigi@autistici.org web: aluigi.org ####################################################################### 1) Introduzione 2) Bug 3) The Code 4) Fix ####################################################################### =============== 1) Introduzione =============== Soldier of Fortune II e' un gioco FPS molto conosciuto sviluppato da Raven Software (http://www.ravensoft.com) e pubblicato da Activision (http://www.activision.com). E' stato rilasciato a Maggio 2002. ####################################################################### ====== 2) Bug ====== Il problema e' un crash del server causato dall'accesso ad una zone di memoria errata, cosa che avviene dopo la gestione di un cl_guid troppo grande passato dal client. Questo e' un in-game bug parziale in quanto l'attacker deve avere accesso al server (ossia se il suo IP e' stato bannato non potra' accedervi) ma puo' attaccare anche i servers protetti da password senza conoscere la parola chiave. ####################################################################### =========== 3) The Code =========== http://aluigi.org/poc/sof2guidboom.zip ####################################################################### ====== 4) Fix ====== No fix. Il gioco e' ancora "ufficialmente" non patchato da mesi quindi si puo' definire non piu' supportato. Comunque sono riuscito a creare un work-around solo per la versione Windows che verifica la lunghezza del cl_guid e non fa' entrare i clients che inviano un valore con piu' di 64 bytes (la dimensione massima del buffer di cl_guid): http://aluigi.org/patches/sof2guidfix.lpatch #######################################################################