
# CVE-2024-12227 - NTIOLib_X64.sys DoS PoC
إثبات المفهوم لثغرة CVE-2024-12227 - ثغرة إلغاء الإشارة إلى مؤشر فارغ (Null Pointer Dereference) في برنامج التشغيل NTIOLib_X64.sys الخاص بـ MSI Dragon Center.
يحتوي NTIOLib_X64.sys الإصدار 3.0.0.10 على ثغرة إلغاء الإشارة إلى مؤشر فارغ في دالة ReadPhysicalMemory (IOCTL 0xC3506104). لا يتحقق برنامج التشغيل من القيمة المرجعة لـ MmMapIoSpace قبل استدعاء MmUnmapIoSpace. إذا أعادت MmMapIoSpace قيمة NULL، فإن استدعاء MmUnmapIoSpace بمؤشر فارغ يؤدي إلى شاشة الموت الزرقاء (BSOD).
يستدعي المعالج الثغري ReadPhysicalMemory (IOCTL 0xC3506104) الدالة MmMapIoSpace لتعيين الذاكرة الفعلية ولكنه لا يتحقق مما إذا كانت تعيد NULL. ثم يقوم الكود بما يلي:
MmUnmapIoSpace مع المؤشر، حتى لو كان NULLإذا فشلت MmMapIoSpace وأعادت NULL، فإن استدعاء MmUnmapIoSpace(NULL, ...) يسبب شاشة الموت الزرقاء (BSOD).
في الإصدار 3.0.0.12، تمت إضافة فحوصات NULL قبل استخدام المؤشر وقبل استدعاء MmUnmapIoSpace.
تحذير: سيؤدي إثبات المفهوم هذا إلى شاشة الموت الزرقاء (BSOD). شغّله فقط داخل جهاز افتراضي أو بيئة اختبار.
python poc_cve_2024_12227.py
MmMapIoSpace وأعادت NULL، يتم استدعاء MmUnmapIoSpace(NULL) مما يسبب شاشة الموت الزرقاء (BSOD)إثبات المفهوم هذا مخصص للأغراض التعليمية والبحث الأمني فقط. استخدمه فقط في بيئات الاختبار المصرح بها. المؤلفون غير مسؤولين عن أي إساءة استخدام لهذا الكود.