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

Compromiso de seguridad en "setuid-perl"

Última Actualización: 14 de Septiembre de 2.000 - Jueves

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

El lenguaje PERL en su versión 5.6 (la actual) y anteriores tiene un fallo de seguridad que, en muchos sistemas, puede permitir que un usuario local alcance privilegios de administrador o "root".

El lenguaje PERL incluye un ejecutable SETUID que permite la ejecución de cualquier script con los privilegios de su usuario propietario. Bajo determinadas circunstancias (cuando se detecta un intento de uso malicioso), ese intérprete envía un mensaje de aviso al administrador del sistema, utilizando el ejecutable "/bin/mail". Lamentablemente dicho programa de correo no está diseñado para ser invocado desde una aplicación "SETUID", por lo que atacante malicioso local puede introducirle datos especialmente formateados que le permitan ejecutar código arbitrario como cualquier otro usuario, especialmente como "root" o administrador.

Aunque la explotación en sí del fallo se produce en "/bin/mail", no corresponde a este programa la responsabilidad del problema, ya que se trata de un componente que nunca se diseñó para ser ejecutado por un proceso SETUID. La responsabilidad recae exclusivamente sobre SPERL, por ser un programa de seguridad crítica, SETUID, que lanza procesos fuera de su control directo y no se preocupa de "limpiar" las variables de entorno y demás datos de entrada recibidos por dichos procesos, que nunca fueron diseñados para ser utilizados bajo este tipo de configuraciones.

Dado que SPERL invoca explícitamente a la aplicación "/bin/mail", aquellos sistemas que no dispongan de dicha aplicación o ésta se encuentre en otro path, *NO* serán vulnerables. Entre los sistemas no vulnerables debido a este hecho tenemos a la distribución Debian de Linux, o las versiones 2.1.x, 2.2.x, 3.x y 4.0 de FreeBSD.

Los administradores con usuarios locales no confiables deben actualizar su distribución PERL cuanto antes (la actualización envía las notificaciones al "syslog", en vez de por email) o, en caso de no necesitar la funcionalidad SPERL, eliminar la bandera "+s" del ejecutable.

Más información:



Python Zope ©2000 jcea@jcea.es

Más información sobre los OpenBadges

Donación BitCoin: 19niBN42ac2pqDQFx6GJZxry2JQSFvwAfS