###################################################################### Luigi Auriemma Applicazione: Apache webserver http://httpd.apache.org Version: <= 1.3.15 solo su Win32 Bug: Cattiva gestione degli URI di 8192 bytes (off-by-one bug) Date: 12 Apr 2001 Autore: Luigi Auriemma e-mail: aluigi@autistici.org web: aluigi.org ###################################################################### 1) Introduzione 2) Bug 3) The Code 4) Fix ###################################################################### =============== 1) Introduzione =============== Il bug esiste solo nelle version Win32 di Apache webserver. ###################################################################### ====== 2) Bug ====== Quando il server di Apache riceve 8192 bytes in una richiesta crasha, compare un MessageBox sullo schermo e la connessione resta aperta per sempre. Un altro problema poi riguarda la memoria utilizzata in quanto un attacker puo' inviare anche altri dati dopo la richiesta GET ed i 8192 bytes come ad esempio un massimo di 100 stringhe della stessa grandezza (ad esempio "Accept: 'A'x8182"). Su WinNT/2k l'attacco e' ancora piu' esoso di risorse in quanto il MessageBox riportante l'eccezione avvenuta comparira' per ogni connessione in cui si e' sfruttato il bug. L'ultimo problema invece riguarda l'anonimita' dell'attacco in quanto il crash del server avviene prima della scrittura dei logs e quindi l'attacker e' completamente anonimo. Questo non e' un buffer overflow quindi non puo' essere eseguito codice remoto. ###################################################################### =========== 3) The Code =========== Alcuni esempi: 1) GET (8184 di "/") / 2) HEAD /(8182 di "A") / 3) GET (8184 di "/") / per 100 volte: Accept: (8182 di "/") 4) GET (8177 di "/") HTTP/1.0 ###################################################################### ====== 4) Fix ====== Apache 1.3.16 ######################################################################