####################################################################### Luigi Auriemma Applicazioni: Alcuni giochi (non recenti) sviluppati da Monolith http://www.lith.com Versioni: - Alien versus Predator 2 <= 1.0.9.6 - Blood 2 <= 2.1 - No one lives forever <= 1.004 - Shogo <= 2.2 Piattaforme: Windows and Mac Bug: buffer overflow limitato Exploitation: remoto, contro il server Data: 08 Ottobre 2004 Autore: Luigi Auriemma e-mail: aluigi@autistici.org web: aluigi.org ####################################################################### 1) Introduzione 2) Bug 3) The Code 4) Fix ####################################################################### =============== 1) Introduzione =============== Monolith e' la software house che sviluppa il famoso motore Lithtech. I giochi vulnerabili al bug che vado a descrivere sono stati rilasciati prima del 2002 ma sono ancora molto giocati online. ####################################################################### ====== 2) Bug ====== Il bug e' un classico buffer-overflow che avviene quando un attacker invia la query di Gamespy \secure\ seguita da almeno 68 caratteri. La limitazione di tale vulnerabilita' e' nei bytes che sovrascrivono il piccolo buffer perche' solo quelli da 0x20 a 0x7f sono accettati mentre gli altri vengono troncati durante alcuni passaggi interni. ####################################################################### =========== 3) The Code =========== http://aluigi.org/poc/lithsec.zip ####################################################################### ====== 4) Fix ====== Nessun fix ufficiale, probabilmente questi giochi non sono piu' supportati e comunque non ho ricevuto alcuna risposta dagli sviluppatori. Fortunatamente creare un work-around per tale bug e' molto facile in quanto e' necessario soltanto settare la stringa "secure" a NULL. Quelle che seguono solo le mie patch non ufficiali: http://aluigi.org/patches/lithsecfix.lpatch #######################################################################