viernes, 31 de diciembre de 1999

Grave error de diseño en el modelo de seguridad SCO UnixWare 7

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
SCO Security



Jesús Cea Avión
jcea@hispasec.com