Alertas de seguridad

“Bad Neighbor”: Ejecución de código remoto en Windows

El caso CVE-2020-16898 relaciona una vulnerabilidad nombrada como Bad Neighbor por Mcafee sobre el protocolo IPV6 de un router, actuando como un “mal vecino”, podría enviar paquetes modificados para comprometer un sistema, generar afectación de servicio y/o ejecutar código malicioso.

Recordemos que en IPV6 existe un protocolo similar a ARP llamado Neighbor Discovery, que además incorpora funcionalidades de ICMP, que le permite a un host conocer por lo menos un enrutador en su red. A partir de allí, el host realiza una solicitud de rutas o “Route Solicitation” a todos sus routers vecinos, y ellos contestan con un mensaje de anuncio de rutas o “Route Advertisement”.

Entre otra información, el mensaje de route advertisement puede enviar al host los servidores DNS recursivos que debe usar y es sobre este proceso, detallado en el RFC 8106, sobre el cual puede tomar provecho un atacante para lograr un buffer overflow. Para quien no esté familiarizado con el término RFC, este define las reglas de juego de cada protocolo de red utilizado.

La imagen mostrada a mano izquierda muestra un paquete de anuncio de rutas para DNS recursivo. Entre otras cosas, el RFC 8106 menciona que el campo de longitud o “lenght” debe ser mayor a 3 e incrementar de 2 en 2, es decir, el campo siempre debe tomar valores impares. Al ingresar un valor par, que no cumple con el RFC, el host no logra interpretar el campo, permitiendo que se produzca un heap overflow, y potencialmente una ejecución de código remoto.

Microsoft ha liberado una POC en su programa de protección activa (MAPP) que permite generar una denegación de servicio en los equipos y estos muestran una pantalla azul tras su ejecución, por lo cual se conoce que es una vulnerabilidad que puede generar denegación de servicio. De hecho, hay disponibles en algunos repositorios de github algunos scripts y binarios para verificar la vulnerabilidad.

Acciones recomendadas

Microsoft ha incluido el parche de la vulnerabilidad en las actualizaciones del mes de Octubre con el KB4577668.

Adicionalmente, existe una alternativa temporal para versiones de sistema operativo 1709 o superiores. Se recomienda deshabilitar en ICMPv6 la configuración de DNS basada en Route advertisement con los siguientes comandos de powershell:

netsh int ipv6 set int *INTERFACENUMBER* rabaseddnsconfig=disable

Note: No reboot is needed after making the change.

Para reversar el cambio se puede utilizar el siguiente comando.

 netsh int ipv6 set int *INTERFACENUMBER* rabaseddnsconfig=enable