
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;
}