
CVE-2017-9430 Исправление
dnstracer определяет, откуда данный DNS-сервер получает информацию для заданного имени хоста, и прослеживает цепочку DNS-серверов до авторитетного ответа.
Переполнение стека на основе буфера в dnstracer до версии 1.9 позволяет злоумышленникам выполнять произвольный код через командную строку с длинным аргументом имени, который некорректно обрабатывается в вызове strcpy для argv[0].
/*dnstracer_broken.h*/
#define NS_MAXDNAME 1024
/*dnstracer.c*/
strcpy(argv0, argv[0]);
Проверить, не превышает ли длина argv[0] 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;
}