19 de agosto de 2010 , Escrito Por Aneury at 12:00
Recientemente se ha parcheado una vulnerabilidad en el kernel Linux 2.6, que podría permitir a un atacante elevar privilegios y ejecutar código arbitrario con permisos de root.
La vulnerabilidad ha sido descubierta por Rafal Wojtczuk de Invisible Things Labs, la empresa de la conocida investigadora Joanna Rutkowska. Rafal descubrió el bug mientras estaba trabajando en la virtualización de la interfaz de usuario del sistema operativo.
Qubes es el proyecto más ambicioso de Rutkowska, un sistema operativo que permite virtualizar procesos independientemente.
Según Rutkowska el bug descubierto podría haber estado ya presente desde la introducción de la rama 2.6 a finales de 2003. Aunque en un primer momento los investigadores reportaron el error a los desarrolladores del servidor X (X.org) finalmente se derivó a los mantenedores del kernel. Esto fue debido a que no se trataba de un fallo inherente al servidor X sino a la forma en la que el kernel maneja la memoria en determinadas circunstancias.
La explotación de la vulnerabilidad permitiría a cualquier proceso no privilegiado con acceso al servidor X escalar a root. De facto los procesos de usuario que posean GUI corren con acceso al servidor X y de ahí que, como teoriza Rutkowska, la explotación de una vulnerabilidad no relacionada en una aplicación de usuario podría ser encadenada y aprovechar ésta para elevar privilegios. La puerta a una ejecución remota de código queda abierta.
Técnicamente la explotación del bug reside en cargar de forma reiterativa en memoria pixmaps (XPM) de gran tamaño aumentando así el área de memoria mapeada.
Gracias a la extensión MIT-SHM del servidor X, se posibilita y se crea un segmento de memoria compartida que será usado por el proceso del servidor X.
La idea es aumentar el tamaño de memoria mapeada y seguidamente llamar a una función recursiva que vaya creando marcos de pila llevando el segmento de pila hacia la zona de memoria compartida, ya de por sí en direcciones altas debido a la expansión de la memoria mapeada usada a alojar los pixmaps.
Durante ese instante, el puntero de pila ha llegado a la zona de memoria compartida y el atacante obtiene el control de la pila ya que puede escribir en esa área posibilitando de ésta forma la ejecución de código arbitrario.
El fallo ha sido corregido en el repositorio de código del kernel y su CVE asignado es CVE-2010-2240.
No hay comentarios:
Publicar un comentario