####################################################################### Luigi Auriemma Applicazione: Unreal engine http://unreal.epicgames.com Versioni: qualsiasi gioco basato su tale motore con il supporto per l'installazione dei file UMOD. Un esempio sono Unreal Tournament <= 451b ed Unreal Tournament 2003 <= 2225. Una lista completa dei giochi vulnerabili non e' disponibile Piattaforme: Windows e MacOS (su Linux i file UMOD non sono supportati ufficialmente) Bug: sovrascrittura arbitraria di qualsiasi file in quanto a danni Exploitation: locale Date: 22 Apr 2004 Autore: Luigi Auriemma e-mail: aluigi@autistici.org web: aluigi.org ####################################################################### 1) Introduzione 2) Bug 3) The Code 4) Fix ####################################################################### =============== 1) Introduzione =============== Il motore di Unreal sviluppato da EpicGames supporta nativamente un formato di file chiamato UMOD ed usato per facilitare l'installazione deli add-ons: "Umod: (aka Unreal MOD) Archivio indipendente dalla piattaforma che permette agli autori di modifiche (MOD) di diffonderle ai giocatori di Unreal" ####################################################################### ====== 2) Bug ====== Il formato UMOD e' un semplice archivio che contiene tutti i files da installare piu' un file manifest.ini letto dall'UMOD installer ed usato per conoscere alcune informazioni come l'autore del mod, la descrizione, la versione minima del gioco necessaria e molto altro. Usando il classico pattern "..\" nel filename e nel suo nome in manifest.ini, per un attacker e' possibile andare al di fuori della directory del gioco e sovrascrivere QUALSIASI file nella partizione ove il gioco e' installato, senza alcun messaggio o avviso da parte dell'installer. ####################################################################### =========== 3) The Code =========== http://aluigi.org/poc/umodpoc.zip Comunque e' anche possibile creare un normale file UMOD usando le utility comunemente utilizzate come UmodWizard, modificare un filename ed il suo nome in manifesti.ini usando il pattern "..\" proprio come "..\..\..\windows\notepad.exe" e poi ricalcolare il checksum dell'UMOD con l'opzione -C del mio UMOD extractor http://aluigi.org/papers/umodext.zip ####################################################################### ====== 4) Fix ====== Il bug e' stato segnalato ad EpicGames il 18 Dicembre 2003. Unreal Tournament 2004 e' l'unico gioco al momento ad essere non vulnerabile infatti tale bug e' stato corretto prima del suo rilascio. Unreal Tournament ed Unreal Tournament 2003 sono ancora vulnerabili e la patch e' un misterio da 7 mesi. Non so se e quanti altri giochi sono vulnerabili. #######################################################################