
CVE-2017-9430 Solución
dnstracer determina de dónde obtiene su información un Servidor de Nombres de Dominio (DNS) determinado para un nombre de host dado, y sigue la cadena de servidores DNS hasta la respuesta autoritativa.
Desbordamiento de búfer basado en pila en dnstracer hasta la versión 1.9 permite a atacantes ejecutar código arbitrario a través de una línea de comandos con un argumento de nombre largo que se maneja incorrectamente en una llamada a strcpy para argv[0].
/*dnstracer_broken.h*/
#define NS_MAXDNAME 1024
/*dnstracer.c*/
strcpy(argv0, argv[0]);
Verificar si la longitud de argv[0] es mayor que 1024.
/*CVE-2017-9430 Fix*/
if(strlen(argv[0]) >= NS_MAXDNAME)
{
free(server_ip);
free(server_name);
fprintf(stderr, "dnstracer: argument is too long %s\n", argv[0]);
return 1;
}