Desde Linux Darkcrizt  

Detectaron una vulnerabilidad en PF que permite eludir las reglas de bloqueo de IPv6

vulnerabilidad

Si se explotan, estas fallas pueden permitir a los atacantes obtener acceso no autorizado a información confidencial o, en general, causar problemas

Se dio a conocer la noticia por parte de NetSecurityLab, en la cual mencionan que han identificado una vulnerabilidad (catalogada bajo CVE-2023-4809) en el código del filtro de paquetes «pf» de FreeBSD.

Se menciona que la vulnerabilidad puede ser explotada para permitir eludir las reglas de bloqueo de IPv6 manipulando paquetes IPv6 fragmentados. El problema ocurre cuando se usa pf para filtrar el tráfico IPv6 con el modo «scrub fragment reassemble» habilitado.

PF se desarrolla como parte del sistema base de OpenBSD. Pese a ello, ha sido portado con éxito a otros sistemas, como FreeBSD que lo fue adoptando paulatinamente, primero como paquete y después paso a ser uno de los tres subsistemas de filtrado que ofrece el núcleo.

PF es un filtro de paquetes escrito originalmente para OpenBSD. PF puede volver a ensamblar paquetes IPv6 fragmentados para aplicar reglas en el paquete reensamblado. Esto permite que pf filtre según la capa superior información de protocolos (por ejemplo, TCP, UDP).

Sobre la vulnerabilidad

Se menciona que la vulnerabilidad se debe a un error que está presente en el controlador de fragmentos «atómicos», un tipo avanzado de fragmentación en el que solo el primer y único fragmento forma una transmisión fragmentada (un paquete se fragmenta usando solo un fragmento).

Los paquetes IPv6 en modo de fragmentación «atómica» que especificaban más de un encabezado de extensión de fragmento no se descartaron como no válidos, sino que se procesaron como fragmentos separados. En consecuencia, las reglas diseñadas para ser aplicadas al paquete final reensamblado a partir de fragmentos no funcionaron.

Un atacante puede eludir las reglas de PF enviando paquetes IPv6 especialmente diseñados que, contrariamente a los requisitos de las especificaciones, contienen varios encabezados extendidos con datos fragmentados.

Por la parte de la implementación original de OpenBSD de PF, se menciona que esta no se ve afectada por la vulnerabilidad, ya que en 2013, durante la implementación de fragmentos atómicos, se agregó una verificación al código de análisis de encabezados en PF que bloquea los paquetes IPv6 con varios encabezados específicos de fragmentos. Una función que contiene la comprobación necesaria, no ha sido portada a FreeBSD, razón por lo que la implementación de PF en el sistema se ve afectada.

Nuestras pruebas muestran que FreeBSD maneja estos fragmentos atómicos reconstruyendo el paquete original (gracias al proceso de depuración) pero no aplica ninguna regla que se aplique a las capas cuatro y superiores (por ejemplo, la penúltima regla de la configuración anterior) pf. Al hacerlo, el fragmento coincide con otras reglas en la configuración del firewall y se le permite pasar. Además, el proceso de depuración ha reparado el paquete, por lo que ahora cualquier sistema operativo detrás del firewall acepta el paquete .

Comprobamos que podíamos establecer una comunicación bidireccional completa entre el atacante y la víctima detrás del firewall de FreeBSD, además de tráfico UDP y tráfico ICMPv6 entre ellos.

Por otra parte, y no menos importante, vale la pena mencionar y aprovechando el espacio de que estamos hablando de una vulnerabilidad, que también se realizo la corrección en la pila inalámbrica de FreeBSD de una vulnerabilidad (CVE-2022-47522), identificada en marzo y conocida con el nombre en clave MacStealer. Esta vulnerabilidad afecta el mecanismo de cola para almacenar en búfer las tramas antes de enviarlas a los destinatarios, así como fallas en la gestión del contexto de seguridad para las tramas en cola.

La vulnerabilidad podría usarse para interceptar el tráfico de otros usuarios, evitando el aislamiento MAC del cliente, incluso si a los clientes no se les permite comunicarse entre sí (por ejemplo, para atacar a usuarios en redes corporativas en las que los usuarios están separados entre sí o en las que Los protocolos WPA2 y WPA3 se utilizan en modo aislamiento de cliente).

Finalmente cabe mencionar que la vulnerabilidad se solucionó en forma de parche en las actualizaciones de FreeBSD 13.2-p3 y 12.4-p5. Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.