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».
jcea@hispasec.com
Más información:
MandrakeSoft Security Advisory: traceroute
http://www.linux-mandrake.com/en/security/MDKSA-2000-053.php3?dis=7.1
security problem in traceroute
http://www.calderasystems.com/support/security/advisories/CSSA-2000-034.0.txt
LBNL Traceroute Heap Corruption Vulnerability
http://www.securityfocus.com/bid/1739
Deja una respuesta