Vulnerabilidad remota en la pila IPv6 de OpenBSD

En el proceso en segundo plano slaacd, que es responsable de la configuración automática de direcciones IPv6 (IPv6 Stateless Address Autoconfiguration, RFC 4862) en OpenBSD, se ha identificado una vulnerabilidad que provoca un desbordamiento del búfer al recibir un anuncio de enrutador IPv6 especialmente diseñado (RA, Router Advertisement) .

Inicialmente, la funcionalidad de configuración automática de direcciones IPv6 se implementó a nivel del kernel, pero a partir de OpenBSD 6.2 se trasladó a un proceso slaacd independiente y sin privilegios. Este proceso es responsable de enviar mensajes RS (Solicitud de enrutador) y analizar respuestas RA (Anuncio de enrutador) con información sobre el enrutador y los parámetros de conexión de red.

En febrero, slaacd solucionó un error que causaba que fallara si se especificaban 7 servidores en la lista RDNSS (Servidores DNS recursivos). Este descuido atrajo la atención de investigadores independientes que intentaron examinar el código slaacd en busca de otros errores que ocurren al analizar campos en mensajes RA. El análisis mostró que hay otro problema en el código, que se manifiesta al procesar el campo DNSSL (Lista de búsqueda de DNS), que incluye listas de nombres de dominio y plantillas de host para DNS.

Cada nombre en la lista DNSSL está codificado usando un delimitador nulo y etiquetas de un byte intermedias que determinan el tamaño de los datos siguientes. La vulnerabilidad se debe al hecho de que en el código de análisis de la lista, un campo con un tamaño se copia en una variable con un tipo entero con signo (“len = data[pos]”). En consecuencia, si se especifica un valor en el campo con el bit más significativo establecido, este valor se percibirá en el operador condicional como un número negativo y se verificará el tamaño máximo permitido (“if (len > 63 || len + pos + 1 > datalen) {“) no funcionará, lo que provocará una llamada a memcpy con un parámetro cuyo tamaño de los datos copiados excede el tamaño del búfer.

Vulnerabilidad remota en la pila IPv6 de OpenBSD
Vulnerabilidad remota en la pila IPv6 de OpenBSD


Fuente: opennet.ru

Añadir un comentario