Home Tecnología Vulnerabilidad Doble libre de Kernel Critical Linux Deja que los atacantes intensifiquen...

Vulnerabilidad Doble libre de Kernel Critical Linux Deja que los atacantes intensifiquen los privilegios

51
0

Se ha descubierto una vulnerabilidad severa de doble libre en el subsistema NFT del kernel de Linux (NetFilter), específicamente dentro del módulo de conjunto PIPAPO.

Esta falla de seguridad crítica permite a los atacantes no privilegiados lograr la escalada de privilegios locales al explotar la corrupción de la memoria del núcleo a través de mensajes de NetLink especialmente elaborados.

Control de llave
1. Error doble en el subsistema NFT del kernel de Linux (versiones 5.6-RC1 a 6.13-RC3) permite la escalada de privilegios locales.
2. Variable de pila no inicializada en la función NFT_ADD_SET_ELEM crea corrupción de memoria cuando config_init_stack_all_zero está deshabilitado.
3. Los atacantes envían mensajes de netlink diseñados para activar el doble libre eliminando los elementos establecidos y luego todo el conjunto.
4. Habilite config_init_stack_all_zero y aplique el parche de netfilter para inicializar correctamente las estructuras vulnerables.

Linux Kernel Vulnerabilidad doble libre

La vulnerabilidad reside en la función nft_add_set_elem ubicada en net/netfilter/nf_tables_api.c, donde una stack de pila no inicializada struct nft_set_elem elem se convierte en la fuente de la falla de seguridad.


Según SSD Advisory, el El problema ocurre Cuando la opción de configuración config_init_stack_all_zero está deshabilitada, dejando datos no inicializados en la pila que contamina la tecla de elemento durante el procesamiento.

La ruta de código vulnerable procesa los datos NFTA_SET_ELEM_KEY proporcionados por el usuario, pero solo inicializa la memoria hasta la longitud de clave (KLEN), dejando el contenido del búfer restante con datos de pila no inicializados.

Esta memoria no inicializada generalmente contiene punteros de llamadas de función de kernel anteriores, lo que desencadena la condición de doble libre cuando Pipapo establece intentos de eliminar elementos.

El proceso de explotación implica una sofisticada técnica de explotación del montón que logra el bypass de Kaslr y establece una escritura arbitraria primitiva. Los atacantes pueden activar la vulnerabilidad siguiendo estos pasos:

Configuración inicial: cree una tabla de NetFilter y PipAPo establecido con configuraciones de campo específicas que generen bytes de acolchado no inicializados primero: Elimine el elemento establecido, causando la primera distribución de Elem-> priv mientras el elemento permanece referenciado en el conjunto de Pipapo. Segundo gratis: elimine todo el conjunto, activando la segunda distribución de la misma región de memoria.

La vulnerabilidad afecta a las versiones del kernel de Linux 5.6-RC1 a 6.13-RC3 y requiere configuraciones de kernel específicas, incluyendo config_netfilter = y, config_nf_tables = y, config_user_ns = y, y críticamente, config_init_stack_all_zero = n.

El exploit aprovecha el hecho de que la estructura ELEM-> privar puede variar entre 32-256 bytes, proporcionando flexibilidad para la orientación de caché de Kmalloc.

Mitigación

Esta vulnerabilidad presenta riesgos de seguridad significativos, ya que proporciona un primitivo confiable de doble libre que puede explotarse para la escalada de privilegios locales.

El ataque logra una alta estabilidad a través de técnicas de fuerza bruta que identifican longitudes de claves óptimas para activar el error en configuraciones de núcleo específicas.

Las estrategias de mitigación efectivas incluyen habilitar la opción de compilación de kernel config_init_stack_all_zero, que inicializa las variables locales a cero y evita la contaminación de datos no inicializada.

Además, la aplicación del parche disponible del equipo de desarrollo de NetFilter aborda la causa raíz al inicializar adecuadamente la estructura ELEM.

La similitud de la vulnerabilidad con CVE-2023-4004 destaca los patrones recurrentes en los problemas de gestión de la memoria del núcleo, enfatizando la importancia de la inicialización variable adecuada y los mecanismos integrales de protección de la pila en el desarrollo del núcleo.

Investigue el comportamiento de malware en vivo, rastree cada paso de un ataque y tome decisiones de seguridad más rápidas y inteligentes -> Prueba cualquiera.

Fuente de noticias