[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Fallo en kernel



 
 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



    	    




Reply to: