####################################################################### Luigi Auriemma Applicazione: Sparklet http://sparklet.sourceforge.net Versioni: <= 0.9.4try3 Piattaforme: Windows, *nix, *BSD and more Bug: format string in client's display Exploitation: remote, versus clients Data: 06 Jul 2006 Autore: Luigi Auriemma e-mail: aluigi@autistici.org web: aluigi.org ####################################################################### 1) Introduzione 2) Bug 3) The Code 4) Fix ####################################################################### =============== 1) Introduzione =============== Sparklet e' un gioco multiplayer 2d rilasciato sotto la licenza GPL. ####################################################################### ====== 2) Bug ====== Il gioco e' affetto da una vulnerabilita' di tipo format string localizzata nella funzione che visualizza le stringhe di testo sullo schermo del client durante la partita. Il problema si trova in agl_text.cpp dove manca l'argomento per la formattazione "%s": void WriteText(const Point &DstLoc, const std::string &Text, const int &Font, const ULONG &Color) { ... allegro_gl_printf_ex(fnt, x, y, 0, Text.c_str()); ... Attraverso questo bug un attacker su un server od un client (il server non fa' nient'altro che passare i dati che riceve ad i clients ad esso connessi) puo' crashare od eseguire codice malevolo contro qualsiasi client che sta' giocando sul server. ####################################################################### =========== 3) The Code =========== Utilizza il nickname %n%n%n%n%n ####################################################################### ====== 4) Fix ====== Una nuova versione verra' rilasciata a breve #######################################################################