
Prueba de concepto para un desbordamiento de búfer crítico en el manejo de DNS de Kemp LoadMaster, causando denegación de servicio remota mediante solicitudes DNS manipuladas.
Los dispositivos Kemp LoadMaster (firmware < 7.2.60) sufren una vulnerabilidad crítica de desbordamiento de búfer en los métodos isreverse() y locate_fqdn() de la biblioteca libkemplink.so. La vulnerabilidad se origina por un búfer de 256 bytes de tamaño insuficiente asignado para los nombres DNS, que puede explotarse enviando una solicitud DNS especialmente manipulada que contenga caracteres especiales o Unicode.
Una explotación exitosa provoca un fallo inmediato y una condición de denegación de servicio (DoS). La presencia de un token canario de pila impide una mayor explotación, pero no puede descartarse la posibilidad de ejecución remota de código (RCE) si un atacante encuentra otra vulnerabilidad para filtrar el token canario de pila.
La vulnerabilidad se activa fácilmente enviando una solicitud DNS por TCP o UDP a los servicios DNS expuestos del dispositivo LoadMaster. Una prueba de concepto sencilla es:
dig @kempdeviceip 😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀.com (En algunas distribuciones de Linux necesitarás añadir +noidnout +noidnin)
La explotación aprovecha un paso específico en el proceso de resolución de nombres DNS. Si bien el búfer asignado de 256 bytes es el tamaño máximo estándar para los nombres DNS transmitidos por la red, y la prueba de concepto cabe dentro de este límite, los caracteres especiales y Unicode se expanden al ser escapados durante el procesamiento. Por lo tanto, el tamaño del búfer tras el escape excede la asignación original. La documentación y el código fuente de la biblioteca Bind9 (de la cual se bifurca el componente DNS) indica que se necesita un búfer de al menos 1004 bytes para una operación segura, recomendándose un tamaño conservador de 1023 bytes. Para más detalles, consulte .
Cronología: