miércoles, 30 de octubre de 2002

Desbordamiento de buffer en el demonio de administración de Kerberos

Se ha descubierto una vulnerabilidad en las implementaciones de Kerberos
realizadas por el MIT y KTH, así como otras distribuciones derivadas de
las mismas. Un atacante remoto puede conseguir privilegios de root en el
servidor master del reino Kerberos. Se tiene constancia de la existencia
de un exploit que utiliza esta vulnerabilidad.

Kerberos es un protocolo que permite la centralización de los procesos
de autenticación dentro de una red, estando especialmente pensado para
ser utilizado en redes heterogéneas y de grandes proporciones.
Básicamente permite que un cliente autenticado por el servidor central
pueda utilizar su credencial ("ticket") para acceder a los servicios de
la red.

Se ha descubierto que diversas implementaciones de Kerberos tienen
vulnerabilidades de desbordamiento de buffer en el demonio de
administración, kadmind. Este desbordamiento puede ser utilizado por un
atacante remoto para obtener privilegios de root en la máquina que está
ejecutando el demonio vulnerable.

kadmind es un demonio utilizado en las solicitudes que modifican la base
de
datos central de Kerberos, como pueden ser las solicitudes de cambio de
contraseña. Este demonio se ejecuta en el servidor master KDC (Key
Distribution
Center) del reino Kerberos.

El desbordamiento se produce en el código que ofrece compatibilidad
descendente con Kerberos 4. Datos enviados por el cliente son utilizados
como argumento de la función memcpy() sin haber sido anteriormente
validados de forma adecuada, pudiendo llegar a producir el
desbordamiento de buffer y la sobre escritura de la pila. Como el
demonio kadmind se ejecuta con privilegios de root, el código incluido
en el ataque se ejecutará con los máximos privilegios. El ataque puede
ser realizado de forma remota y sin necesidad de que el atacante se
identifique.

Esta vulnerabilidad afecta a la implementación de Kerberos del MIT
(versiones 4 y versiones 5 hasta la krb5-1.2.6, incluida) y también a la
implementación de Kerberos realizada por Kungi Tekniska Högskolan, KTH
(versiones de eBones anteriores a la 1.2.1 y versiones de Heimdal
anteriores a la 0.5.1).

Así mismo, existen diversas implementaciones de Kerberos derivadas del
código del MIT y de KTH que también son vulnerables. Entre estas se
incluyen la versión para MacOS X 10.0, las incluidas en diversas
distribuciones de Linux (Conectiva, Red Hat, SuSE), diversas
implementaciones BSD (FreeBSD, NetBSD, OpenBSD).

Para evitar este problema se recomienda la instalación del parche
apropiado facilitado por el distribuidor de la implementación. Otra
posibilidad es deshabilitar el soporte de Kerberos 4 si éste no es
imprescindible. También es muy recomendable bloquear, en los sistemas de
protección perimetral, cualquier acceso al servicio de administración
que tenga como origen una red que no sea de confianza.



Xavier Caballé
xavi@hispasec.com