Vulnerabilidad remota en el kernel de Linux que ocurre al utilizar el protocolo TIPC

Se ha identificado una vulnerabilidad (CVE-2022-0435) en el módulo del kernel de Linux que asegura el funcionamiento del protocolo de red TIPC (Transparent Inter-process Communication), permitiendo potencialmente ejecutar código a nivel del kernel mediante el envío de una red especialmente diseñada. paquete. El problema solo afecta a los sistemas con el módulo del kernel tipc.ko cargado y la pila TIPC configurada, que generalmente se usa en clústeres y no está habilitada de manera predeterminada en distribuciones de Linux no especializadas.

Se observa que cuando se construye el kernel en el modo "CONFIG_FORTIFY_SRC=y" (usado en RHEL), que agrega comprobaciones de límites adicionales a la función memcpy(), la operación se limita a una parada de emergencia (el kernel entra en pánico). Si se ejecuta sin comprobaciones adicionales y si se filtra información sobre las etiquetas canary utilizadas para proteger la pila, el problema puede explotarse para la ejecución remota de código con derechos del kernel. Los investigadores que identificaron el problema afirman que la técnica de explotación es trivial y se revelará después de la eliminación generalizada de la vulnerabilidad en las distribuciones.

La vulnerabilidad es causada por un desbordamiento de pila que ocurre al procesar paquetes, cuyo valor del campo con el número de nodos miembros del dominio excede 64. Para almacenar los parámetros de los nodos en el módulo tipc.ko, se usa una matriz fija “u32 member[64 ]”, pero en el proceso de procesamiento del número de nodo especificado en el paquete no se verifica el valor de "member_cnt", lo que permite utilizar valores superiores a 64 para la sobrescritura controlada de datos en el área de memoria siguiente. a la estructura "dom_bef" en la pila.

El error que provocó la vulnerabilidad se introdujo el 15 de junio de 2016 y se incluyó en el kernel de Linux 4.8. La vulnerabilidad se solucionó en las versiones del kernel de Linux 5.16.9, 5.15.23, 5.10.100, 5.4.179, 4.19.229, 4.14.266 y 4.9.301. En los kernels de la mayoría de distribuciones el problema sigue sin solucionarse: RHEL, Debian, Ubuntu, SUSE, Fedora, Gentoo, Arch Linux.

El protocolo TIPC fue desarrollado originalmente por Ericsson, diseñado para organizar la comunicación entre procesos en un clúster y se activa principalmente en los nodos del clúster. TIPC puede funcionar a través de Ethernet o UDP (puerto de red 6118). Cuando se trabaja a través de Ethernet, el ataque se puede realizar desde la red local, y cuando se utiliza UDP, desde la red global si el puerto no está cubierto por un firewall. El ataque también puede ser llevado a cabo por un usuario local sin privilegios del host. Para activar TIPC, debe descargar el módulo del kernel tipc.ko y configurar el enlace a la interfaz de red usando netlink o la utilidad tipc.

Fuente: opennet.ru

Añadir un comentario