
تحليل تقني متعمق وإثبات مفهوم لـ CVE-2024-38063، وهي ثغرة حرجة في نواة Windows IPv6 تسمح بتنفيذ التعليمات البرمجية عن بُعد. يتضمن تحليل السبب الجذري، وإثبات مفهوم قائم على Scapy، ودليل مختبر معزول للبحث التعليمي.
يحتوي هذا المستودع على بحثنا وتحليلنا لثغرة CVE-2024-38063، وهي ثغرة حرجة في حزمة TCP/IP الخاصة بنظام Windows.
CVE هي اختصار لـ Common Vulnerabilities and Exposures. وهي قاموس موحّد للعيوب الأمنية السيبرانية المُعلنة علنًا، وتُدار بواسطة مؤسسة MITRE. يحصل كل إدخال على معرّف فريد بالتنسيق CVE-YEAR-NUMBER.
| الحقل | التفاصيل |
|---|
| معرّف CVE | CVE-2024-38063 |
| الاسم المستعار | قاتل نواة IPv6 |
| الخطورة | حرجة (CVSS 9.8 / 10) |
| النوع | تنفيذ التعليمات البرمجية عن بُعد (RCE) |
| الموقع | حزمة TCP/IP لنظام Windows (tcpip.sys) |
| تاريخ التصحيح | أغسطس 2024 (تحديثات الثلاثاء التصحيحية من Microsoft) |
| اكتُشفت بواسطة | ZeQiao Wu (NSFOCUS TIANQI LAB) |
تشير درجة CVSS البالغة 9.8 إلى مشكلة شبه قصوى الخطورة تتطلب تصحيحًا فوريًا.
خلال هذا البحث، قمنا بالأعمال التالية:
دراسة خلفية CVE
شرحنا ما هي CVE، وكيف يتم تعيين المعرّفات بواسطة MITRE، وما المعلومات التي يحتويها سجل CVE النموذجي.
توصيف الثغرة
وثّقنا لماذا تُعتبر CVE-2024-38063 ثغرة "الكأس المقدسة": لا تتطلب مصادقة، ولا تفاعلًا من المستخدم، وقابلة للانتشار كدودة، وIPv6 مفعّل افتراضيًا، وتأثيرها على مستوى النواة.
أساسيات IPv6
غطّينا الاختلافات بين IPv4 وIPv6، ودور الترويسات الممتدة (extension headers)، ولماذا يعمل التجزئة (fragmentation) بشكل مختلف في IPv6.
تحليل عميق للسبب الجذري
تتبعنا مسار الحزمة الكامل داخل tcpip.sys:
NET_BUFFER_LIST (NBL)Ipv6pProcessOptions وIppSendErrorListIpv6pReceiveFragmentتقييم المصطلحات والصعوبة
أنشأنا جداول واضحة تشرح المصطلحات الأمنية، والمفاهيم الخاصة بنظام Windows، والصعوبة النسبية لكل مرحلة من مراحل الاستغلال.
تطوير إثبات المفهوم (PoC)
بنينا ووثّقنا سكربت Python قائمًا على Scapy يقوم بإنشاء حزم خيارات الوجهة غير الصالحة المتداخلة المطلوبة وقطع IPv6 لتفعيل الثغرة.
دليل مختبر معزول كامل
كتبنا تعليمات خطوة بخطوة من أجل:
bcdedit /set debug onالعرض التوضيحي
سجّلنا فيديو يعرض الإعداد الكامل للمختبر، وتنفيذ السكربت، والانهيار الناجح.
مراجعة التصحيح
وثّقنا التحديثات التراكمية الرسمية لشهر أغسطس 2024 (أرقام KB) وكيف يزيل الإصلاح حالة السباق (race condition).
تمتلك هذه الثغرة عدة خصائص عالية الخطورة:
tcpip.sys (Ring 0). الاستغلال الناجح يمنح تحكمًا كاملًا في النظام.يتم تفعيل الثغرة من خلال مزيج من ترويستي IPv6 ممتدتين:
ترويسة خيارات الوجهة (nh=60)
تحتوي على نوع خيار غير صالح (otype > 0x80). وهذا يجبر Windows على توليد خطأ ICMPv6 Parameter Problem.
ترويسة التجزئة (nh=44)
تُبقي الحزم في قائمة انتظار إعادة التجميع الخاصة بـ IPv6 حتى بعد تلفها.
NET_BUFFER_LIST (NBL) واحد.Ipv6pProcessOptions الخيار السيئ ويسلّم NBL إلى IppSendErrorList.IppSendErrorList علامة داخلية بشكل غير صحيح ويفسد الحزم اللاحقة في نفس NBL، مما يجبر DataLength الخاص بها على الصفر.Ipv6pReceiveFragment حجم الحمولة كـ 0 − HeaderSize، مما يسبب تدفقًا سفليًا صحيحًا (يصبح طول الحمولة ~4 جيجابايت).RtlCopyMemory ينسخ الطول الهائل الناتج عن التدفق السفلي → تجاوز سعة كومة النواة.يتوفر مخطط تفصيلي لتدفق البيانات وتحليل على مستوى الدوال في التقرير الكامل.
| الملف | الغرض |
|---|---|
CVE-2024-38063_Writeup.md | التحليل التقني التفصيلي الكامل ودليل المختبر الشامل |
poc_script.py | إثبات المفهوم القائم على Scapy |
demo_video.mp4 | عرض توضيحي بالفيديو |
README.md | هذا المستند الموجز |
ضع الملفات الداعمة الثلاثة في جذر المستودع (أو حدّث المسارات) بحيث تبقى مرتبطة.
bcdedit /set debug on + إعادة تشغيل) لتحسين موثوقية تجميع الحزم.2001:db8::20 → المهاجم، 2001:db8::10 → الهدف).خطوات التكوين الكاملة، ومصفوفة استكشاف الأخطاء وإصلاحها، وتعليمات التنظيف موثقة في التقرير.
أصدرت Microsoft الإصلاح كجزء من التحديثات التراكمية لشهر أغسطس 2024:
| نظام التشغيل | رقم KB |
|---|---|
| Windows 11 | KB5041580 |
| Windows 10 | KB5041583 |
| Windows Server 2022 | KB5041581 |
| Windows Server 2019 | KB5041579 |
يُدخل التصحيح قفلًا مناسبًا حول مسارات التعليمات البرمجية المتأثرة، مما يزيل حالة السباق التي أدت إلى التدفق السفلي الصحيح والكتابة خارج الحدود.
جميع المواد في هذا المستودع (التقرير، والسكربت، والفيديو) مقدمة حصريًا للأغراض التعليمية ولأبحاث الأمن الدفاعي.
فريق البحث