Fallo de seguridad (local) en los n�cleos de Linux anteriores a 2.2.25 y 2.4.21
-------------------------------------------------------------------------------
Detectada una vulnerabilidad en el n�cleo del sistema operativo Linux
(versiones 2.2.* y 2.4.*) que permite a un usuario local elevar sus
privilegios en el sistema, convirti�ndose en root.
La vulnerabilidad �nicamente es explotable cuando se producen estas tres
circunstancias:
1. El n�cleo ha sido compilado para dar soporte a m�dulos y el cargador de
m�dulos del n�cleo est� habilitado.
2. /proc/sys/kernel/modprobe contiene la v�a de acceso de un archivo
ejecutable.
3. No se bloquean las llamadas a ptrace()
En el momento en que un proceso solicita una funci�n residente en un
m�dulo, el n�cleo del sistema operativo inicia un proceso hijo,
estableciendo el euid (Effective UID, identificador de usuario efectivo) y
el egid (Effective Group ID, identificador de grupo efectivo) en 0 y
ejecuta la funci�n execve("/sbin/modprobe").
La vulnerabilidad se encuentra en que, antes de cambiar el euid del
proceso hijo, es posible utilizar ptrace() para conectarse con el mismo.
En este momento, el usuario puede insertar c�digo en el proceso, que ser�
ejecutado con los privilegios de root.
Se trata de un problema que afecta las versiones 2.2.* y 2.4.* del n�cleo
del sistema operativo Linux, �nicamente cuando se ha compilado el n�cleo
para dar soporte a m�dulos utilizando kmod. Por tanto, las versiones del
n�cleo compiladas de forma monol�tica no son vulnerables. El problema no
puede ser explotado de forma remota, por lo que dependiendo del entorno
puede considerarse como un fallo menos grave.
Existen diversos exploits que permiten aprovecharse de esta vulnerabilidad
para que cualquier usuario del sistema obtenga privilegios de root.
La soluci�n al problema pasa por aplicar el parche en el c�digo fuente del
n�cleo del sistema operativo, recompilarlo y aplicarlo o bien, cuando se
utiliza la versi�n est�ndar del n�cleo incluida en una distribuci�n de
GNU/Linux, instalar el paquete de distribuci�n del n�cleo actualizado.
Existen, tambi�n, una serie de arreglos temporales o factores para mitigar
el impacto de la vulnerabilidad: deshabilitar la utilizaci�n de
kmod/m�dulos, a�adir un m�dulo que bloquee la utilizaci�n de ptrace() o
modificar el contenido de /proc/sys/kernel/modprobe para que contenga la
referencia a un archivo no existente en el sistema.
M�s informaci�n
Linux ptrace root vulnerability 2.2/2.4 kernels
http://www.linuxsecurity.com/articles/host_security_article-6911.html
Ptrace hole / Linux 2.2.25
http://marc.theaimsgroup.com/?l=linux-kernel&m=104791735604202&w=2
Root Local en el kernel Linux (fallo de ptrace)
http://barrapunto.com/article.pl?sid=03/03/19/0216236&mode=thread&threshold=
Local Root Hole in Linux Kernels
http://slashdot.org/articles/03/03/18/199208.shtml?tid=106&tid=172
The kernel module loader in Linux kernel 2.2.x before 2.2.25 and 2.4.x
before 2.4.21 allows local users to gain root privileges by using ptrace
to attach to a child process that is spawned by the kernel
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0127
Linux Ptrace/Seguid Exec Vulnerability
http://www.securityfocus.com/bid/3447
ISS X-Force Database: linux-ptrace-race-condition (7311):
Linux ptrace race condition allows a local attacker to gain root privileges
http://www.iss.net/security_center/static/7311.php
Exploits:
http://august.v-lo.krakow.pl/~anszom/km3.c
http://isec.pl/cliph/isec-ptrace-kmod-exploit.c
--
Ricardo A.Frydman
Analista en Sistemas de Computacion
http://www.eureka-linux.com.ar
Agente Oficial de Piensa Technologies (M�X)
para la Rep. Argentina