elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
14 Febrero 2012, 09:40  


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  libsndfile 1.0.18 CAF Processing Integer Overflow Vulnerability
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: libsndfile 1.0.18 CAF Processing Integer Overflow Vulnerability  (Leído 1,751 veces)
AlbertoBSD
Estudiante y
Colaborador
***
Desconectado Desconectado

Mensajes: 1.955


Anonymous & Paranoid


Ver Perfil WWW
libsndfile 1.0.18 CAF Processing Integer Overflow Vulnerability
« en: 5 Marzo 2009, 00:40 »

Previamente en Winamp <= 5.541, libsndfile <= 1.0.17 AIFF buffer unverified se corrigio una falla en la libreria y ahora sale nuevamente otra version.

Pues no acabando con las fallas en libsndfile (Usada por xmms, winamp y algunos otros reproductores).
Recientemente el 7 de febrero se habia parcheado una vulnerabilidad y ahora hace unos 2 dias sale a la luz una nueva versión de dicha libreria:

Código:
# Version 1.0.18 (Feb 07 2009) Add Ogg/Vorbis suppport, remove captive libraries, many new features and bug fixes. Generate Win32 and Win64 pre-compiled binaries.
# Version 1.0.19 (Mar 02 2009) Fix for CVE-2009-0186. Huge number of minor fixes as a result of static analysis.

http://www.mega-nerd.com/libsndfile/

No se si alguna version de winamp hubiese salido entre las dos fechas anteriores sin embargo y si salio cargada con la nueva libreria tambien es vulnerable.
Y segun la pagina si podriamos ejecutar codigo con la falla

El bug al parecer si se puede aprovechar de manera remota secunia ha reportado esto y tiene ya su CVE-2009-0186 lo interesante seria buscar un PoC y modificarlo para ejecutar comandos de manera remota, estare investigando los cambios en el codigo fuente de ambas versiones vere sobre la falla.

Saludos
En línea

Bien Super Divertido
@wifigdlmx
AlbertoBSD
Estudiante y
Colaborador
***
Desconectado Desconectado

Mensajes: 1.955


Anonymous & Paranoid


Ver Perfil WWW
Re: libsndfile 1.0.18 CAF Processing Integer Overflow Vulnerability
« Respuesta #1 en: 5 Marzo 2009, 16:22 »

He comprobado la diferencias del archivo:



y esta es la condicion que fue agregada para solverntar el problema:

Código
	if (desc.channels_per_frame > 200)
{ psf_log_printf (psf, "**** Bad channels per frame value %u.\n", desc.channels_per_frame) ;
return SFE_MALFORMED_FILE ;
} ;
 

parce ser que la variable desc.channels_per_frame es la va ayudar a llegar al problema.

Empezare a ver el formato del archivo y ver como manipularlo.

Saludos.
En línea

Bien Super Divertido
@wifigdlmx
AlbertoBSD
Estudiante y
Colaborador
***
Desconectado Desconectado

Mensajes: 1.955


Anonymous & Paranoid


Ver Perfil WWW
Re: libsndfile 1.0.18 CAF Processing Integer Overflow Vulnerability
« Respuesta #2 en: 8 Marzo 2009, 04:00 »

Hola que tal, no he tenido mucho tiempo sin embargo he estado estudiando un poco del formato de los archivos CAF y ademas he visto que secunia tambien a sacado el reporte para winamp.

:http://secunia.com/advisories/33981/

En el cual nos confirma la falla también para winamp

Citar
Description:
Secunia Research has discovered a vulnerability in Winamp, which can be exploited by malicious people to compromise a user's system.

The vulnerability is caused due to the use of vulnerable libsndfile code.

For more information:
SA33980

Successful exploitation may allow execution of arbitrary code.

The vulnerability is confirmed in versions 5.541 and 5.55. Other versions may also be affected.

Sobre el formato de los archivos CAF pueden ver los siguientes link:

:http://developer.apple.com/documentation/MusicAudio/Reference/CAFSpec/CAF_overview/chapter_2_section_3.html#//apple_ref/doc/uid/TP40001862-CH209-TPXREF102
:http://developer.apple.com/documentation/MusicAudio/Reference/CAFSpec/CAFSpec.pdf

Espero y a alguien le interese.

Saludos
En línea

Bien Super Divertido
@wifigdlmx
Ivanchuk


Desconectado Desconectado

Mensajes: 458


LLVM


Ver Perfil WWW
Re: libsndfile 1.0.18 CAF Processing Integer Overflow Vulnerability
« Respuesta #3 en: 8 Marzo 2009, 15:10 »

Uh pero esta re buggy la lib... Ahi estuve viendo lo q pusiste Anon y encontre algo pero no estoy seguro. La variable channels_per_frame es un unsigned int, en las dos versiones econtre esta asignacion
Código:
psf->sf.channels = desc.channels_per_frame ;
sf es una estructura SF_INFO definida en sndfile.h, el problema creo que esta en que channels es de tipo int mientras que channels_per_frame es uint. Como en la version vieja no esta la verificacion >200 tenes un casting de uint a int que te puede dar un numero negativo si channels_per_frame>0x80000000. Digo puede llegar a ser eso, pero estoy viendo y no llega muy lejos mi suposicion :-\. Seguire investigando...
Saludos.
En línea

Sólo quien practica lo absurdo puede lograr lo imposible.

Join us @ http://foro.h-sec.org
AlbertoBSD
Estudiante y
Colaborador
***
Desconectado Desconectado

Mensajes: 1.955


Anonymous & Paranoid


Ver Perfil WWW
Re: libsndfile 1.0.18 CAF Processing Integer Overflow Vulnerability
« Respuesta #4 en: 8 Marzo 2009, 16:27 »

Creo que el problema no va por ahi,  bueno eso creo.

Código
				for (k = 0 ; k < psf->sf.channels ; k++)
{ sf_count_t position ;
float value ;
 
psf_binheader_readf (psf, "Ef8", &value, &position) ;
psf->peak_info->peaks [k].value = value ;
psf->peak_info->peaks [k].position = position ;
 
snprintf (psf->u.cbuf, sizeof (psf->u.cbuf), "    %2d   %-12ld   %g\n", k, (long) position, value) ;
psf_log_printf (psf, psf->u.cbuf) ;
} ;
 

El problema esta en el pedazo de código anterior esta leyendo del archivo caf y directamente los esta volcando en memoria hasta el limite de la variable psf->sf.channels, lo cual puede general problemas.

Saludos
En línea

Bien Super Divertido
@wifigdlmx
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
paso por referencia de un integer
Java
kasiko 9 2,554 Último mensaje 24 Enero 2011, 06:26
por ChavalChavito
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines