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

Compromiso de seguridad en la versión 1.94.4 de "majordomo"

Última Actualización: 15 de Febrero de 2.000 - Martes

Artículo publicado en el boletín Una-Al-Día de Hispasec, el 19 de Enero de 2.000.
Publicado también en el boletín IT|NEWS de BPE.News, el 25 de Enero de 2.000.

La versión 1.94.4 de "majordomo" tiene un fallo de seguridad que permite que cualquier usuario local pueda ejecutar código arbitrario con los privilegios bajo los que se ejecuta "majordomo". Este fallo sólo es atacable por parte de usuarios locales a la máquina en la que se ejecuta "majordomo", y está corregido en la reciente versión 1.94.5 de este programa.

Majordomo es un programa de gestión de listas de correo usado en multitud de servidores UNIX de todo el mundo. Automatiza la gestión de altas y bajas de usuarios, y permite controlar los parámetros de distribución de los mensajes de las listas de correo (por ejemplo, quien puede escribir o cual es el tamaño máximo de los mensajes).

Normalmente las utilidades "majordomo" son invocadas a través de un "wrapper", cuya misión es que la ejecución de dichas utilidades se realice con los permisos concedidos a "majordomo", en vez de utilizar los permisos del usuario que invoca la utilidad. Por otra parte, el módulo "resend", que es el empleado para la distribución de los mensajes, tiene una vulnerabilidad que permite que se ejecuten comandos arbitrarios si se invoca con una determinada línea de comandos.

Si se toman estos dos hechos de forma conjunta, un usuario local puede ejecutar comandos arbitrarios con los privilegios concedidos a "majordomo".

Se recomienda, por tanto, que todas aquellas instalaciones que estén empleando la versión 1.94.4 de "majordomo" actualicen cuanto antes a la versión 1.94.5.

Como solución temporal mientras no se actualiza el sistema, los administradores pueden realizar el siguiente cambio en "resend":

--- resend      Thu Aug 19 10:12:03 1999
+++ resend+     Tue Dec 28 23:55:39 1999
@@ -58,7 +58,7 @@
 if ($ARGV[0] =~ /^\@/) {
     $fn = shift(@ARGV);
     $fn =~ s/^@//;
-    open(AV, $fn) || die("open(AV, \"$fn\"): $!\nStopped");
+    open(AV, "< $fn") || die("open(AV, \"< $fn\"): $!\nStopped");
     undef($/); # set input field separator
     $av = <AV>;        # read whole file into string
     close(AV);

Otra posibilidad consiste en cambiar los permisos de ejecución del "wrapper" para que sólo pueda ser utilizado por un grupo selecto de usuarios o procesos (por ejemplo, el grupo "mail").

Se recomienda una instalación fresca de 1.94.5, ya que se han corregido otros problemas adicionales.

Más información:

Majordomo
http://www.greatcircle.com/majordomo/
ftp://ftp.greatcircle.com/pub/majordomo



Python Zope ©2000 jcea@jcea.es

Más información sobre los OpenBadges

Donación BitCoin: 19niBN42ac2pqDQFx6GJZxry2JQSFvwAfS