Un grave error de diseño en el modelo de seguridad SCO UnixWare 7 permite que cualquier usuario del sistema ejecute código arbitrario como administrador o «root».
Bajo UnixWare 7, el administrador de la máquina puede configurar el sistema de tal forma que determinados ejecutables sean invocados con un UID/GID (idenificador de usuario y grupo) diferentes del usuario que los ejecuta, sin tener que recurrir a los flags SUID/SGID. Lamentablemente un proceso «mutado» sigue siendo completamente accesible por el usuario que lo invocó. El usuario puede, por ejemplo, enviarle cualquier señal, detener su ejecución o, incluso, modificar el valor de sus registros, incluyendo el contador de programa.
Un escenario posible, entonces, es ejecutar un proceso con estas características, con una variable de entorno conteniendo código SHELL. Una vez que el proceso está en ejecución, el usuario que lo ha lanzado puede detenerlo y modificarlo con cualquier depurador. Una vez detenido, el usuario sólo debe modificar el contador de programa para que apunte al c¢digo SHELL que se ha introducido en la variable de entorno y ¥voila! tenemos un shell con privilegios de «root» o administrador.
El c¢digo shell puede aparecer en cualquier parte, no s¢lo en una variable de entorno. Puede, por ejemplo, ser le¡do desde un fichero. El problema no son las variables de entorno, sino que los procesos «mutados» no deben ser accesibles al usuario que los ejecuta, ya que sus privilegios son diferentes.
Al parecer, SCO ha publicado parches para solucionar ‘sta y otras muchas vulnerabilidades de UnixWare 7.
M s informaci¢n:
SCO Unixware Privileged Program Debugging Vulnerability
http://www.securityfocus.com/vdb/bottom.html?vid=869
SCO Security
http://www.sco.com/security
Jesos Cea Avi¢n
jcea@hispasec.com