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

Ejecución de código arbitrario a través de "tmpwatch"

Última Actualización: 07 de Diciembre de 2.000 - Jueves

Artículo publicado en el boletín Una-Al-Día de Hispasec, el 22 de Noviembre de 2.000.
Publicado también en es.internet.com, el 27 de Noviembre de 2.000.

El programa "tmpwatch" permite que un usuario local ejecute código arbitrario en el servidor, con los privilegios del usuario que lanza "tmpwatch", típicamente "root".

"tmpwatch" es un programa que se encarga de eliminar ficheros temporales que no han sido modificados o a los que no se haya accedido en un determinado espacio de tiempo. Suele ser un comando utilizado en directorios compartidos por varios usuarios (típicamente, "/tmp") y liberar espacio en disco. Se trata, adicionalmente, de una herramienta ejecutada típicamente por "root".

La versiones de "tmpwatch" anteriores a la 2.6.2 invocan el comando "fuser" para identificar ficheros abiertos por otros procesos, pero dicha invocación, a través de la función "system()", se realiza de forma insegura: un usuario puede crear un fichero cuyo nombre contenga metacaracteres shell y forzar la ejecución de comandos arbitrarios si se lanza "tmpwatch" con la opción "-s" o "-fuser".

La vulnerabilidad afecta a las versiones 6.2 y 7.0 de Red Hat Linux, y 6.0, 6.1, 7.0 y 7.1 de Linux-Mandrake.

Adicionalmente, las versiones de "tmpwatch" en Red Hat Linux 6.1, 6.2 y 7.0, y 6.0, 6.1, 7.0 y 7.1 de Linux-mandrake, procesan los directorios haciendo un "fork()" en cada uno de ellos, lo que puede producir un ataque de denegación de servicio (por desbordamiento de la tabla de procesos) si un usuario crea una jerarquía de directorios muy profunda.

La recomendación es actualizar a la versión 2.6.2 de "tmpwatch".

Más información:



Python Zope ©2000 jcea@jcea.es

Más información sobre los OpenBadges

Donación BitCoin: 19niBN42ac2pqDQFx6GJZxry2JQSFvwAfS