Vulnerabilidad en el subsistema netfilter que permite la ejecución de código a nivel del kernel de Linux

Se ha identificado una vulnerabilidad (CVE-2022-25636) en Netfilter, un subsistema del kernel de Linux utilizado para filtrar y modificar paquetes de red, que podría permitir la ejecución de código a nivel del kernel. Se ha anunciado un ejemplo de un exploit que permite a un usuario local elevar sus privilegios en Ubuntu 21.10 con el mecanismo de seguridad KASLR desactivado. El problema se manifiesta a partir del kernel 5.4. La solución todavía está disponible como parche (no se han formado versiones correctivas del kernel). Puede seguir la publicación de actualizaciones de paquetes en distribuciones en estas páginas: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux.

La vulnerabilidad se debe a un error al calcular el tamaño de la matriz flow->rule->action.entries en la función nft_fwd_dup_netdev_offload (definida en el archivo net/netfilter/nf_dup_netdev.c), lo que puede provocar que los datos controlados por el atacante se escriban en un área de memoria fuera del búfer asignado. El error se manifiesta al configurar las reglas "dup" y "fwd" en cadenas para las que se utiliza la aceleración de hardware del procesamiento de paquetes (descarga). Dado que el desbordamiento se produce antes de que se cree la regla de filtrado de paquetes y se verifique la compatibilidad con la descarga, la vulnerabilidad también se aplica a los dispositivos de red que no admiten la aceleración de hardware, como una interfaz de bucle invertido.

Se observa que el problema es bastante simple de explotar, ya que los valores que van más allá del búfer pueden sobrescribir el puntero a la estructura net_device, y los datos sobre el valor sobrescrito se devuelven al espacio del usuario, lo que permite encontrar las direcciones en la memoria necesarias para llevar a cabo el ataque. La explotación de la vulnerabilidad requiere la creación de ciertas reglas en nftables, lo que solo es posible con los privilegios CAP_NET_ADMIN, que puede obtener un usuario sin privilegios en un espacio de nombres de red separado (espacios de nombres de red). La vulnerabilidad también podría usarse para atacar los sistemas de aislamiento de contenedores.

Fuente: opennet.ru

Añadir un comentario