####################################################################### Luigi Auriemma Applicazione: netPanzer http://www.netpanzer.org http://netpanzer.berlios.de Versioni: <= 0.8 (rev 952) Piattaforme: *nix, *BSD, Windown, Mac ed altre Bug: terminazione del server Exploitation: remoto, contro server Data: 23 May 2006 Autore: Luigi Auriemma e-mail: aluigi@autistici.org web: aluigi.org ####################################################################### 1) Introduzione 2) Bug 3) The Code 4) Fix ####################################################################### =============== 1) Introduzione =============== netPanzer e' un gioco di strategia multiplayer open source molto conosciuto. ####################################################################### ====== 2) Bug ====== Il gioco e' vulnerabile ad un denial of service che avviene quando un client usa un flag (chiamato anche frameNum) maggiore di 41 in quanto la funzione setFrame in src/Lib/2D/Surface.hpp controlla se tale numero e' minore di frameCount: void setFrame(const float &frameNum) { assert(frameNum >= 0.0); assert(frameNum < frameCount); mem = frame0 + (pix.y * stride) * int(frameNum); } Il risultato e' l'immediata interruzione del server: netpanzer: src/Lib/2D/Surface.hpp:370: void Surface::setFrame(const float&): Assertion `frameNum < frameCount' failed. Received signal SIGABRT(6) aborting and trying to shutdown. Closing logfile. Aborted ####################################################################### =========== 3) The Code =========== http://aluigi.org/poc/panza.zip ####################################################################### ====== 4) Fix ====== No fix. Nessuna risposta dagli sviluppatori. #######################################################################