Ubuntu, Arch y Fedora afectadas por una vulnerabilidad en el kernel
Ubuntu, Arch y Fedora afectadas por una vulnerabilidad en el kernel
La vulnerabilidad con código CVE-2013-1763 afecta a un amplio rango de distribuciones, entre ellas Fedora, Ubuntu y Arch Linux. Esta vulnerabilidad, cuenta además con el código para explotarla, que permite obtener privilegios de root. En esta entrada analizaremos cómo se obtienen dichos privilegios.
Esta vulnerabilidad afecta a las versiones del kernel 3.0-37.10 y se encuentra en 'net/core/sock_diag.c' donde la función '__sock_diag_rcv_msg' no hace una comprobación de `bounds check` del array 'sock_diag_handles' provocando una 'out-of-bounds exception' y permitiendo a usuarios sin privilegios de root obtenerlo.
En los sistemas Linux de 32 bits, cada proceso virtualizará 4GB de espacio de memoria, siendo 3GB de estos el espacio de usuario y 1GB el espacio del kernel. En este caso el rango de user-space es 00000000 a 0xBFFFFFFF y el espacio de kernel 0xC0000000 a 0xFFFFFFFF. El espacio del kernel es compartido por todos los procesos, sin embargo, sólo pueden acceder los procesos que se estén ejecutando en kernel-mode. Los procesos a nivel de usuario pueden acceder a kernel-mode a través de `syscalls`. Si un proceso se ejecuta en kernel-mode, las direcciones generadas pertenecen al espacio del kernel.
Las funciones 'commit_creds' y 'prepare_kernel_cred' son funciones del kernel y para poder ejecutarlas tendríamos que pasar a kernel-mode; por tanto, si la función '__sock_diag_rcv_msg' se ejecuta en kernel-mode, podemos aprovecharla para ganar privilegios de root.

Se aplica un mmap al rango de memoria 0x10000-0x120000, incluyendo una serie de NOPs hasta poder colocar correctamente la payload que salta al código que pertenece a kernel-mode. En Ubuntu, no se puede obtener el valor de la variable 'rehash_time' de dicho rango de memoria, por lo que sólo es válido el siguiente método para obtenerla:

Tras conseguir toda esta información, el usuario puede obtener privilegios de root. Como contra, para poder ejecutar este exploit más de una vez, es necesario reiniciar el sistema operativo.
Etiquetado en: vulnerabilidad Linux Unix Ubuntu Fedora Arch Linux
Marzo 20, 2018 09:58 AM
Fuente: HispaSec.com - Fernando Díaz (2018)
Publicado por: Ivan Valencia Santiago
Alertas
Alerta en Linux por fallo Pack2TheRoot que permite escalda de privilegios
Una red de ordenadores bots lanza un ciberataque para robar cuentas de Microsoft 365
Vulnerabilidad en PostgreSQL explotada en ataques dirigidos
Nuevas vulnerabilidades de OpenSSH permiten ataques MitM y DoS
Ciberseguridad