Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
dnsmasq-cve-2026 — أداة تحقق أوتوماتيكية من العيوب لـ 6 ثغرات في dnsmasq (CVE-2026-2291, 4890, 4891, 4892, 4893, 5172) | Kitploit
أدوات/GitHubGitHub/jianrongxiao-linksys/dnsmasq-cve-2026
تحليل الثغرات الأمنيةالاستغلالالاختبار العشوائيأمن الشبكاتاختبار الاختراقتحليل الملفات الثنائيةتحليل DNS
GitHubjianrongxiao-linksys/dnsmasq-cve-2026

dnsmasq-cve-2026

أداة تحقق أوتوماتيكية من العيوب لـ 6 ثغرات في dnsmasq (CVE-2026-2291, 4890, 4891, 4892, 4893, 5172)

عرض المستودع
14منذ 4 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

أداة التحقق من ثغرات dnsmasq CVE-2026

أداة صندوق أسود آلية للتحقق من 6 ثغرات في dnsmasq (مايو 2026). ترسل حزم هجوم إلى جهاز قيد الاختبار (DUT) وتُبلغ عن نجاح/فشل — بدون الحاجة إلى الوصول إلى الكود المصدري.

بداية سريعة

# قم بتعيين DNS الخاص بـ DUT إلى عنوان IP للشبكة الواسعة (WAN) للابتوب عبر الواجهة الرسومية أولاً، ثم:
sudo python3 dnsmasq_cve_verify.py --laptop <YOUR_WAN_IP> --dut <DUT_LAN_IP> --dut-pass <SSH_PASS>

# مثال:
sudo python3 dnsmasq_cve_verify.py --laptop 10.0.0.211 --dut 192.168.1.1 --dut-pass '12345Asdf@'

الثغرات المختبرة

CVECVSSالنوعناقل الهجومالميزة المتأثرة
CVE-2026-22919.2تجاوز سعة المخزن المؤقت في الكومة (Heap overflow)عن بُعدextract_name() — نشط دائمًا
CVE-2026-51727.5قراءة خارج الحدود / تعطلعن بُعدextract_addresses() — نشط دائمًا
CVE-2026-48907.5حلقة لا نهائية (DoS)عن بُعدتحليل خريطة بت NSEC (--dnssec)
CVE-2026-48915.3قراءة خارج الحدود في الكومةعن بُعدالتحقق من RRSIG (--dnssec)
CVE-2026-48928.4تجاوز سعة الكومة → صلاحية الجذرمحلي/مجاورCLID الخاص بـ DHCPv6 (--dhcp-script + DHCPv6)
CVE-2026-48935.3تجاوز التحققعن بُعدفحص مصدر ECS (--add-subnet)

كيف يعمل كل اختبار

CVE-2026-2291 (حرج — تجاوز سعة الكومة في extract_name)

السبب الجذري: union bigname يُعلن char name[MAXDNAME] ولكن الأحرف المُستَثناة يمكنها توسيع الاسم إلى 2*MAXDNAME+1 بايت، مما يسبب تجاوزًا للكومة.

طريقة الاختبار: يُرسل استعلامات DNS تحتوي على أسماء نطاقات بأحرف ذات بت عالٍ (0x80+) والتي يتم هروبها داخليًا بصيغة \DDD (4 بايت لكل بايت مدخل). إذا تعطل dnsmasq أو توقف عن الاستجابة، فهو معرض للخطر.

السلوك المُصحَّح: يرفض الأسماء الكبيرة جدًا بأدب (FORMERR/REFUSED) أو يستخدم مخزنًا مؤقتًا موسعًا.

CVE-2026-5172 (عالٍ — قراءة خارج الحدود في extract_addresses)

السبب الجذري: حقل rdlen المُزَيَّف يسمح لـ extract_name() بتقديم المؤشر إلى ما بعد نهاية السجل. يؤدي نقص البايتات المتبقية إلى قيمة ضخمة → قراءة خارج الحدود ضخمة → تعطل.

طريقة الاختبار: يُرسل استجابات DNS مع سجلات CNAME حيث rdlen أصغر من الاسم المشفر الفعلي. إذا تعطل dnsmasq، فهو معرض للخطر.

السلوك المُصحَّح: يتحقق من بقاء المؤشر داخل حدود rdlen المُعلنة بعد extract_name().

CVE-2026-4890 (عالٍ — حلقة لا نهائية في NSEC لـ DNSSEC)

السبب الجذري: تحليل خريطة بت NSEC يتقدم بمقدار p[1] بدلاً من p[1]+2 (نقص حجم رأس النافذة). مع bitmap_length=0، لا يتقدم المؤشر أبدًا → حلقة لا نهائية.

طريقة الاختبار: يُرسل سجل NSEC مزيفًا مع window=0, bitmap_length=0. إذا توقف dnsmasq عن الاستجابة لجميع الاستعلامات (يعلق، لا يتعطل)، فهو معرض للخطر. يمكن استغلاله قبل التحقق من RRSIG.

السلوك المُصحَّح: يتقدم بمقدار p[1]+2 ويتجاوز الخرائط البتية ذات الطول الصفري.

CVE-2026-4891 (متوسط — قراءة خارج الحدود في الكومة في RRSIG)

السبب الجذري: rdlen في RRSIG لم يتم التحقق منه مقابل الحجم الأدنى (18 + اسم المُوَقِّع). طول التوقيع المحسوب يقل تحت الصفر → يُعامَل كقيمة ضخمة → قراءة خارج الحدود.

طريقة الاختبار: يُرسل سجلات RRSIG مع rdlen=10 (أقل بكثير من الحد الأدنى 31+ بايت). تعطل = معرض للخطر.

السلوك المُصحَّح: يتحقق من rdlen >= fixed_fields + signer_name_length قبل حساب طول التوقيع.

CVE-2026-4892 (عالٍ — CLID لـ DHCPv6 صلاحية الجذر المحلية)

السبب الجذري: CLIDs لـ DHCPv6 (حتى 65535 بايت) يتم ترميزها بصيغة ست عشرية عبر sprintf("%.2x") في daemon->packet (5131 بايت). CLID بحجم 3000 بايت → سلسلة ست عشرية بحجم 6000 بايت → تجاوز. عملية المساعد تعمل بصلاحية الجذر.

طريقة الاختبار: يُرسل SOLICIT لـ DHCPv6 مع معرّف عميل بحجم 3000 بايت. يتطلب الاتصال عبر IPv6 وتكوين --dhcp-script. تعطل المساعد = معرض للخطر.

السلوك المُصحَّح: يقتطع أو يتحقق من طول CLID قبل الترميز الست عشري.

ملاحظة: بعض الإصدارات تُجمَّع مع -DNO_DHCP6 ولا تتأثر بهذه الثغرة.

CVE-2026-4893 (متوسط — تجاوز التحقق من مصدر ECS)

السبب الجذري: process_reply() يمرر طول سجل OPT (~23 بايت) بدلاً من طول الحزمة الكامل إلى check_source(). جميع فحوصات الحدود تفشل → الدالة تعيد دائمًا 1 (صالح).

طريقة الاختبار: يُرسل استعلامات DNS مع خيار EDNS Client Subnet يحتوي على بادئات مصدر مزيفة. إذا قام dnsmasq بإرجاع ECS دون تحقق، فهو معرض للخطر.

السلوك المُصحَّح: يمرر طول الحزمة الكامل إلى check_source()، مما يتيح فحوصات حدود مناسبة وفقًا لـ RFC 7871 القسم 9.2.

المعالجة

الترقية إلى dnsmasq 2.92rel2 (مُوصى بها)

  • المصدر: https://thekelleys.org.uk/dnsmasq/dnsmasq-2.92rel2.tar.xz
  • التصحيحات من المنبع: https://thekelleys.org.uk/dnsmasq/CVE/

أداة التحقق الآلي من العيوب (dnsmasq_cve_verify.py)

أداة ضمان الجودة الأساسية. تُشغَّل على الابتوب المختبر، وترسل حزم هجوم إلى DUT، وتُبلغ عن نجاح/فشل واضح لكل ثغرة CVE. لا يلزم تعديل DUT أبعد من الوصول عبر SSH للقراءة فقط لفحص الحالة.

طوبولوجيا الشبكة

┌─────────────────────────────────────────────────────────────────────┐
│                        الابتوب المختبر                               │
│                                                                      │
│   واجهة LAN                   واجهة WAN                             │
│   <LAPTOP_LAN_IP>             <LAPTOP_WAN_IP>                      │
│        │                               │                            │
│        │                          ┌────┴──────────────┐             │
│        │                          │ خادم DNS ضار      │             │
│        │                          │ (منفذ 53)         │             │
│        │                          └────┬──────────────┘             │
│        │                               │                            │
└────────┼───────────────────────────────┼────────────────────────────┘
         │ شبكة LAN فرعية                │ شبكة WAN فرعية
         │                               │
┌────────┼───────────────────────────────┼────────────────────────────┐
│        │                               │                            │
│   LAN: <DUT_LAN_IP>              WAN: <DUT_WAN_IP>                  │
│   (بوابة LAN)                    (رابط WAN)                         │
│                                                                      │
│              DUT (راوتر Linksys)                                     │
│              dnsmasq (أي إصدار < 2.92rel2)                          │
│                                                                      │
│   resolv-file=/etc/resolv.conf                                      │
│   → nameserver <LAPTOP_WAN_IP>  ← يُضبط عبر الواجهة الرسومية، يُمرر إلينا│
│                                                                      │
└─────────────────────────────────────────────────────────────────────┘

تدفق البيانات:
  1. ترسل الأداة استعلام DNS إلى عنوان IP لـ LAN الخاص بـ DUT (منفذ 53)
  2. لا يستطيع dnsmasq الخاص بـ DUT الحل محليًا → يُمرر upstream إلى LAPTOP_WAN_IP
  3. خادمنا الضار على واجهة WAN يرد بحمولة هجوم
  4. يعالج dnsmasq الخاص بـ DUT الاستجابة الضارة → تعطل/تعليق/نجاة
  5. تتحقق الأداة من حالة DUT عبر SSH (للقراءة فقط)

إعداد مثال (عنوان IP الخاص بك سيختلف):

الدورIP (مثال)
LAN الابتوب192.168.1.254
WAN الابتوب10.0.0.211
LAN DUT192.168.1.1
WAN DUT10.0.0.214

الشرط الأساسي: يجب أن يكون عنوان IP لـ WAN للابتوب و WAN لـ DUT على نفس الشبكة الفرعية، حتى يتمكن DUT من الوصول إلى الابتوب كخادم DNS upstream.

كيف تعمل

تنزيل الأداة