
CVE-2017-9430 Correzione
dnstracer determina da dove un determinato Domain Name Server (DNS) ottiene le sue informazioni per un dato hostname e segue la catena di server DNS fino alla risposta autorevole.
Un overflow del buffer basato su stack in dnstracer fino alla versione 1.9 consente agli attaccanti di eseguire codice arbitrario tramite una riga di comando con un argomento dal nome molto lungo che viene gestito erroneamente in una chiamata strcpy per argv[0].
/*dnstracer_broken.h*/
#define NS_MAXDNAME 1024
/*dnstracer.c*/
strcpy(argv0, argv[0]);
Controlla se la lunghezza di argv[0] è maggiore di 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;
}