Member of The Internet Defense League Últimos cambios
Últimos Cambios
Blog personal: El hilo del laberinto Geocaching

Traceroute proporciona acceso local a "root"

Última Actualización: 30 de Octubre de 2.000 - Lunes

Artículo publicado en el boletín Una-Al-Día de Hispasec, el 14 de Octubre de 2.000.

La utilidad "traceroute", utilizada de forma constante por cualquier administrador de redes, contiene una vulnerabilidad que permite que un usuario local obtenga privilegios de administrador o "root". La vulnerabilidad afecta a las versiones anteriores a la "traceroute-1.4a5-16", distribución LBL.

Traceroute es un programa que permite analizar las rutas IP que siguen los datagramas entre la máquina que ejecuta el "traceroute" y un servidor destino arbitrario. La utilidad nos va imprimiendo en pantalla los nodos que necesita atravesar el datagrama para alcanzar su destino. Se trata, por tanto, de una herramienta de gran importancia a la hora de diagnosticar problemas de red.

Debido a que existen varias implementaciones distintas de "traceroute", la vulnerabilidad no está presente en todos los sistemas Unix. El problema se complica porque diversos desarrolladores han solucionado el problema en distintas posiciones del "árbol" de código, por lo que deducir qué versiones son vulnerables y cuáles no es complicado.

Muchas de las distribuciones Linux son vulnerables, aunque SUSE ha informado de que en este caso concreto utilizan un código distinto.

Digital Unix, AIX, FreeBSD, OpenBSD, HP-UX no parecen ser vulnerables. El caso de Solaris es especial. Aunque se dice que las versiones anteriores a Solaris 7 son vulnerables (se nombra específicamente a la versión 2.5.1), personalmente no he conseguido reproducir el problema, tal vez porque me preocupo de mantener todos mis sistemas actualizados.

El problema se basa en intentar hacer un "free()" en un bloque de memoria cuyos descriptores "malloc" han sido manipulados convenientemente por un atacante local. De esta forma se consigue que un "free" modifique la memoria de tal forma que se posibilite la ejecución de código arbitrario. Dado que traceroute suele ser una aplicación "setuid", el código ejecutado tendrá privilegios de administrador o "root".

La solución más evidente, además de actualizarse a una versión no vulnerable, es eliminar el flag "setuid" en traceroute, limitando así su ejecución a "root".

Más información:



Python Zope ©2000 jcea@jcea.es

Más información sobre los OpenBadges

Donación BitCoin: 19niBN42ac2pqDQFx6GJZxry2JQSFvwAfS