Detectaron una vulnerabilidad en el Kernel que podria permitir el robo de información

mayo 06, 2021 , 0 Comments

Investigadores de Cisco Talos dieron a conocer hace pocos dias una vulnerabilidad en el kernel de Linux que puede explotarse para robar datos y también servir como medio para poder escalar privilegios y comprometer el sistema.

La vulnerabilidad se describe como una «vulnerabilidad de divulgación de información que podría permitir a un atacante ver la memoria de la pila del kernel».

CVE-2020-28588 es la vulnerabilidad que se descubrió en la funcionalidad proc/pid/syscall de dispositivos ARM de 32 bits que ejecutan el sistema operativo. Según Cisco Talos, el problema se descubrió por primera vez en un dispositivo que ejecuta Azure Sphere.

Existe una vulnerabilidad de divulgación de información en la funcionalidad / proc / pid / syscall de Linux Kernel 5.1 Stable y 5.4.66. Más específicamente, este problema se ha introducido en v5.1-rc4 (comete 631b7abacd02b88f4b0795c08b54ad4fc3e7c7c0) y todavía está presente en v5.10-rc4, por lo que es probable que todas las versiones intermedias se vean afectadas. Un atacante puede leer / proc / pid / syscall para activar esta vulnerabilidad, lo que provoca que el kernel pierda contenido de memoria.

Proc es un pseudo-sistema de archivos especial en sistemas operativos similares a Unix que se utiliza para acceder dinámicamente a los datos del proceso que se encuentran en el kernel. Presenta información sobre procesos y otra información del sistema en una estructura jerárquica similar a un archivo.

Por ejemplo, contiene subdirectorios /proc/[pid], cada uno de los cuales contiene archivos y subdirectorios que exponen información sobre procesos específicos, legibles mediante el uso del ID de proceso correspondiente. En el caso del archivo «syscall», es un archivo legítimo del sistema operativo Linux que contiene registros de las llamadas al sistema utilizadas por el kernel.

Para la empresa, los hackers podrían aprovechar la falla y acceder al sistema operativo y al archivo syscall a través de un sistema utilizado para interactuar entre las estructuras de datos del núcleo, Proc. La entrada syscall procfs podría explotarse si los hackers emiten comandos para generar 24 bytes en la memoria de pila no inicializada, lo que conduciría a una omisión de la aleatorización del diseño del espacio de direcciones del kernel (KASLR).

Al observar esta función específica, todo se ve bien, pero vale la pena señalar que el argsparámetro pasado vino desde la proc_pid_syscallfunción y, como tal, en realidad es de tipo __u64 args. En un sistema ARM, la definición de función convierte el tamaño de la argmatriz en elementos de cuatro bytes desde ocho bytes (ya que unsigned longen ARM son 4 bytes), lo que da como resultado que en memcpyse copie en 20 bytes (más 4 para args[0]).

De manera similar, para i386, donde unsigned longson 4 bytes, solo argsse escriben los primeros 24 bytes del argumento, dejando intactos los 24 bytes restantes.

En ambos casos, si miramos hacia atrás en la proc_pid_syscallfunción.

Mientras que en ARM de 32 bits e i386 solo copiamos 24 bytes en la argsmatriz, la cadena de formato termina leyendo 48 bytes de la argsmatriz, ya que la %llxcadena de formato tiene ocho bytes en los sistemas de 32 y 64 bits. Por lo tanto, 24 bytes de memoria de pila no inicializada terminan obteniendo salida, lo que podría conducir a una omisión de KASLR.

Los investigadores afirman que este ataque es «imposible de detectar de forma remota en una red» porque es la lectura de un archivo legítimo del sistema operativo Linux. «Si se usa correctamente, un hacker podría aprovechar esta filtración de información para explotar con éxito otras vulnerabilidades de Linux no parcheadas», dice Cisco.

Al respecto de ello Google dijo recientemente:

“Las fallas de seguridad de la memoria con frecuencia amenazan la seguridad de los dispositivos, especialmente las aplicaciones y los sistemas operativos. Por ejemplo, en el sistema operativo móvil Android también respaldado por el kernel de Linux, Google dice que descubrió que más de la mitad de las vulnerabilidades de seguridad abordadas en 2019 fueron el resultado de errores de seguridad de la memoria».

Por último y no menos importante se recomienda actualizar las versiones 5.10-rc4, 5.4.66, 5.9.8 del kernel de Linux, ya que se ha probado y se ha confirmado que esta vulnerabilidad puede aprovechar las siguientes versiones del kernel de Linux.

Finalmente si estás interesado en conocer más al respecto sobre la publicación, puedes consultar los detalles en el siguiente enlace.


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.