<<< Date Index >>>     <<< Thread Index >>>

Code execution in Icecast 2.0.1



#######################################################################

                             Luigi Auriemma

Application:  Icecast
              http://www.icecast.org
Versions:     <= 2.0.1
Platforms:    only Win32 seems vulnerable but other platforms could be
              affected in some conditions
Bug:          array overflow
Risk:         critical
Exploitation: remote
Date:         28 September 2004
Author:       Luigi Auriemma
              e-mail: aluigi@xxxxxxxxxxxxxx
              web:    http://aluigi.altervista.org


#######################################################################


1) Introduction
2) Bug
3) The Code
4) Fix


#######################################################################

===============
1) Introduction
===============


Icecast is an audio broadcast system that streams music in both MP3 and
Ogg Vorbis format.


#######################################################################

======
2) Bug
======


The Icecast server accepts a maximum of 32 headers in the clients HTTP
request.

In some environments (like in Win32) a request with more than 31
headers causes the overwriting of the return address of the vulnerable
function with a pointer to the beginning of the 32th header.

In short, is possible to execute remote code simply using the normal
HTTP request plus 31 headers followed by a shellcode that will be
executed directly without the need of calling/jumping to registers or
addresses or using other annoying techniques.


#######################################################################

===========
3) The Code
===========


http://aluigi.altervista.org/poc/iceexec.zip


#######################################################################

======
4) Fix
======


Version 2.0.2


#######################################################################


--- 
Luigi Auriemma
http://aluigi.altervista.org