Se han identificado vulnerabilidades explotables en nf_tables, watch_queue e IPsec en el kernel de Linux

Se han identificado varias vulnerabilidades peligrosas en el kernel de Linux que permiten a un usuario local aumentar sus privilegios en el sistema. Se han preparado prototipos funcionales de exploits para todos los problemas considerados.

  • Una vulnerabilidad (CVE-2022-0995) en el subsistema de seguimiento de eventos watch_queue permite que los datos se escriban en un búfer fuera de los límites de la memoria del kernel. El ataque puede ser llevado a cabo por cualquier usuario sin privilegios y hacer que su código se ejecute con derechos del kernel. La vulnerabilidad existe en la función watch_queue_set_size() y está asociada con un intento de borrar todos los punteros en una lista, incluso si no se les ha asignado memoria. El problema ocurre al compilar el kernel con la opción "CONFIG_WATCH_QUEUE=y", que se usa en la mayoría de las distribuciones de Linux.

    La vulnerabilidad se solucionó en un cambio de kernel agregado el 11 de marzo. Puedes seguir las publicaciones de actualizaciones de paquetes en distribuciones en estas páginas: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. El prototipo del exploit ya está disponible públicamente y le permite obtener acceso de root cuando se ejecuta en Ubuntu 21.10 con el kernel 5.13.0-37.

    Se han identificado vulnerabilidades explotables en nf_tables, watch_queue e IPsec en el kernel de Linux

  • Vulnerabilidad (CVE-2022-27666) en los módulos del kernel esp4 y esp6 con la implementación de transformaciones ESP (Encapsulating Security Payload) para IPsec, utilizadas cuando se utiliza IPv4 e IPv6. La vulnerabilidad permite a un usuario local con privilegios normales sobrescribir objetos en la memoria del kernel y aumentar sus privilegios en el sistema. El problema se debe a una falta de conciliación entre el tamaño de memoria asignado y los datos reales recibidos, dado que el tamaño máximo del mensaje podría exceder el tamaño máximo de memoria asignado para la estructura skb_page_frag_refill.

    La vulnerabilidad se solucionó en el kernel el 7 de marzo (corregido en 5.17, 5.16.15, etc.). Puedes seguir las publicaciones de actualizaciones de paquetes en distribuciones en estas páginas: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Ya se ha publicado en GitHub un prototipo funcional del exploit, que permite a un usuario normal obtener acceso root a Ubuntu Desktop 21.10 en la configuración predeterminada. Se afirma que con cambios menores el exploit también funcionará en Fedora y Debian. Cabe destacar que el exploit se preparó originalmente para la competencia pwn2own 2022, pero los desarrolladores del kernel identificaron y corrigieron un error asociado con él, por lo que se decidió revelar los detalles de la vulnerabilidad.

  • Dos vulnerabilidades (CVE-2022-1015, CVE-2022-1016) en el subsistema netfilter del módulo nf_tables, que asegura el funcionamiento del filtro de paquetes nftables. El primer problema permite a un usuario local sin privilegios lograr una escritura fuera de los límites en un búfer asignado en la pila. Se produce un desbordamiento cuando se procesan expresiones de nftables que tienen un formato determinado y se procesan durante la fase de verificación de los índices especificados por un usuario que tiene acceso a las reglas de nftables.

    La vulnerabilidad se debe a que los desarrolladores dieron a entender que el valor de "enum nft_registers reg" era de un solo byte, cuando cuando se habilitaban ciertas optimizaciones, el compilador, según la especificación C89, podía usar un valor de 32 bits para ello. . Debido a esta característica, el tamaño utilizado al verificar y asignar memoria no corresponde al tamaño real de los datos en la estructura, lo que lleva a que la cola de la estructura se superponga con punteros en la pila.

    El problema se puede aprovechar para ejecutar código a nivel del kernel, pero un ataque exitoso requiere acceso a nftables, que se puede obtener en un espacio de nombres de red separado con derechos CLONE_NEWUSER o CLONE_NEWNET (por ejemplo, si puede ejecutar un contenedor aislado). La vulnerabilidad también está estrechamente relacionada con las optimizaciones utilizadas por el compilador, que, por ejemplo, se habilitan cuando se compila en el modo "CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y". La explotación de la vulnerabilidad es posible a partir del kernel de Linux 5.12.

    La segunda vulnerabilidad en netfilter se debe al acceso a un área de memoria ya liberada (uso después de la liberación) en el controlador nft_do_chain y puede provocar una fuga de áreas no inicializadas de la memoria del kernel, que pueden leerse mediante manipulaciones con expresiones nftables y usarse. por ejemplo, para determinar direcciones de puntero durante el desarrollo de exploits para otras vulnerabilidades. La explotación de la vulnerabilidad es posible a partir del kernel de Linux 5.13.

    Las vulnerabilidades se solucionan en los parches del kernel actuales 5.17.1, 5.16.18, 5.15.32, 5.10.109, 5.4.188, 4.19.237, 4.14.274 y 4.9.309. Puedes seguir las publicaciones de actualizaciones de paquetes en distribuciones en estas páginas: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. El investigador que identificó los problemas anunció la preparación de exploits funcionales para ambas vulnerabilidades, que se planea publicar en unos días, después de que las distribuciones publiquen actualizaciones para los paquetes del kernel.

Fuente: opennet.ru

Añadir un comentario