
CVE-2025-3052 — Updated!
بحث حول CVE-2025-3052، وهي ثغرة أمنية في برنامج Insyde الثابت (firmware) تكشف عن قدرة كتابة عشوائية قادرة على تعديل مؤشرات حساسة أمنيًا.
🐞 CVE-2025-3052: فساد الذاكرة في IhisiParamBuffer
يُركّز هذا المستودع المواد البحثية المتعلقة بـ CVE-2025-3052، وهي ثغرة فساد ذاكرة في وحدة UEFI موقّعة بشهادة Microsoft الخاصة بطرف ثالث، تتيح للمهاجم إفساد بنى البرامج الثابتة الحساسة أمنيًا، وتعطيل فرض Secure Boot، وتنفيذ تعليمات برمجية عشوائية غير موقّعة قبل تحميل نظام التشغيل. يتضمن تحليلًا تقنيًا للسبب الجذري وتقنية الاستغلال، وملفات ثنائية حقيقية وتعليمية قابلة للاستغلال، ووثائق داعمة تهدف إلى مساعدة الباحثين على فهم هذه الفئة من الثغرات وإعادة إنتاجها والتجريب بها.
📑 جدول المحتويات
- الاكتشاف الأصلي والمراجع الرسمية
- الملفات الثنائية القابلة للاستغلال (حقيقية / تعليمية)
- نظرة عامة على الثغرة (التحليل، الاستغلال، إثبات المفهوم)
🧠 الاكتشاف الأصلي والمراجع الرسمية
تم اكتشاف CVE-2025-3052 في الأصل والإفصاح عنه بمسؤولية من قبل فريق أبحاث Binarly. المراجع الرسمية والمجتمعية:
- مدونة أبحاث Binarly (10 يونيو 2025)
- مجموعة المراجع المجتمعية
🐜 الملفات الثنائية القابلة للاستغلال
يتضمن هذا المستودع ملفين ثنائيين قابلين للاستغلال، مُقدَّمين بأهداف بحثية وتعليمية مختلفة.
🧨 ملف ثنائي حقيقي قابل للاستغلال
يمثّل هذا الملف الثنائي الثغرة كما كانت موجودة في الواقع.
- تطبيق UEFI الأصلي القابل للاستغلال والمتأثر بـ CVE-2025-3052.
- مخصص للتحليل الواقعي والهندسة العكسية.
- موقّع بشهادة UEFI الخاصة بطرف ثالث من Microsoft.
- مستخرج من مستودعات البرمجيات الخبيثة العامة:
🎓 ملف ثنائي تعليمي قابل للاستغلال
- الكود المصدري الكامل القابل للترجمة لتطبيق UEFI تعليمي مبسّط.
- يعيد إنتاج نفس فرضية الثغرة الموجودة في الملف الثنائي الحقيقي.
- مصمم لمساعدة المبتدئين على:
- التقدم تدريجيًا نحو تحليل الملف الثنائي الأصلي.
- تجنّب الهندسة العكسية الثقيلة في المراحل المبكرة.
- فهم آليات الثغرة.
🧪 نظرة عامة على الثغرة (التحليل، الاستغلال، إثبات المفهوم)
CVE-2025-3052 هي ثغرة تجاوز Secure Boot تؤثر على أنظمة UEFI، ناتجة عن التعامل غير الآمن مع بيانات مسترجعة من متغير NVRAM داخل تطبيق UEFI موقّع. تتيح الثغرة للمهاجم إفساد بنى البرامج الثابتة الحساسة أمنيًا أثناء عملية الإقلاع، مما يكسر سلسلة الثقة في UEFI فعليًا ويمكّن من تنفيذ تعليمات برمجية غير موقّعة قبل تحميل نظام التشغيل.
ما يجعل هذه الثغرة ذات تأثير بالغ ليس فقط طبيعة العلّة نفسها، وهي بدائية فساد الذاكرة، بل السياق الذي توجد فيه: وحدة UEFI موقّعة بشهادة UEFI الخاصة بطرف ثالث من Microsoft، وموثوقة افتراضيًا على الغالبية العظمى من الأنظمة الحديثة. ونتيجة لذلك، يحدث الاستغلال في واحدة من أبكر وأكثر مراحل التنفيذ امتيازًا في المنصة، قبل ضوابط الأمان على مستوى نظام التشغيل.
🔐 Secure Boot وشهادات Microsoft
Secure Boot هو ميزة أمان أساسية في UEFI مصممة لفرض سلسلة الثقة في المنصة من البرامج الثابتة إلى نظام التشغيل. غرضه الأساسي هو منع مكونات الإقلاع غير المصرّح بها أو الخبيثة، مثل bootkits، من التنفيذ أثناء عملية الإقلاع.
على مستوى عالٍ، يعمل Secure Boot بالتحقق التشفيري من الملفات التنفيذية لـ UEFI قبل السماح بتشغيلها. يُجرى هذا التحقق باستخدام قاعدتي بيانات تحتفظ بهما البرامج الثابتة:
- db: تحتوي على تجزئات Authenticode الموثوقة والشهادات الجذرية الموثوقة.
- dbx: تحتوي على التجزئات والشهادات الملغاة أو غير الموثوقة صراحةً.
يُسمح لتطبيق UEFI بالتنفيذ إذا تحقق أحد الشرطين:
- تطابق تجزئة Authenticode الخاصة به مع مدخل في db، أو
- تتحقق سلسلة شهاداته وصولًا إلى شهادة جذرية موثوقة موجودة في db، ولا تكون موجودة في dbx.
افتراضيًا، تأتي معظم الأنظمة موثوقة بالشهادات التالية في db:
- Microsoft Corporation UEFI CA 2011 - تُستخدم لتوقيع مكونات UEFI الخاصة بطرف ثالث، بما في ذلك shim الخاص بـ Linux.
- Microsoft Windows Production PCA 2011 - تُستخدم لتوقيع محمّل إقلاع Windows.
- شهادة واحدة أو أكثر مملوكة لمصنّع المعدات الأصلية (OEM).
تم توقيع الوحدات القابلة للاستغلال المرتبطة بـ CVE-2025-3052 باستخدام شهادة Microsoft Corporation UEFI CA 2011. ولأن هذه الشهادة موثوقة على نطاق واسع عبر المصنّعين والمنصات، يمكن لأي تطبيق موقّع بها أن يُنفَّذ على معظم أنظمة UEFI دون تفاعل المستخدم. تضخّم هذه الثقة الواسعة تأثير أي ثغرة داخل مثل هذه الوحدة بشكل كبير، إذ تتجاوز فعليًا ضمانات الحماية المقصودة من Secure Boot.
🔎 اكتشاف الوحدة والاستطلاع
اكتُشفت وحدة UEFI القابلة للاستغلال في البداية أثناء تحليل واسع النطاق للملفات الثنائية لـ UEFI المرفوعة إلى مستودعات البرمجيات الخبيثة العامة، وأبرزها VirusTotal. وبينما حدث أول إرسال علني للوحدة في نوفمبر 2024، كشف فحص توقيع Authenticode الخاص بها أنها وُقّعت في وقت مبكر يعود إلى أكتوبر 2022، مما يشير إلى أن الملف الثنائي ربما كان متداولًا لفترة طويلة قبل اكتشافه.
كان اسم الملف الأصلي الملاحظ أثناء التحليل هو Dtbios-efi64-71.22.efi. وقد أشار فحص السلاسل المضمّنة وبيانات الشهادة الوصفية وسلوك الملف بقوة إلى أن الوحدة طُوّرت بواسطة DT Research, Inc، وهو مصنّع متخصص في أجهزة الحوسبة المتنقلة المتينة.
كشفت الهندسة العكسية الإضافية أن الوحدة هي أداة لتفليش BIOS، مصممة لقراءة صورة برنامج ثابت من القرص وكتابتها إلى ROM الخاص بالنظام. ورغم أنها كانت مخصصة في الأصل لأجهزة DT Research، فإن الوحدة ليست مقيّدة بمنصة محددة ويمكنها التنفيذ على أي نظام يثق بشهادة UEFI الخاصة بطرف ثالث من Microsoft.
كان من الأدلة الحاسمة أثناء الاستطلاع وجود متغير NVRAM المسمى IhisiParamBuffer. يرتبط هذا المتغير ارتباطًا وثيقًا بتطبيقات البرامج الثابتة القائمة على Insyde، وقد كان متورطًا سابقًا في ثغرات أخرى أفصحت عنها Binarly (مثل BRLY-2022-023 وBRLY-2023-005). وقد أشار وجوده فورًا إلى فئة محتملة من المشكلات المتعلقة بـ NVRAM.
💥 إيجاد الثغرة واستغلالها
يكمن السبب الجذري لـ CVE-2025-3052 في الاستخدام غير الآمن لبيانات مقروءة من متغير NVRAM دون التحقق منها. وتحديدًا:
- يسترجع تطبيق UEFI قيمة متغير NVRAM المسمى IhisiParamBuffer.
- تُعامَل هذه القيمة كمؤشر موثوق وتُخزَّن في متغير عام على العنوان 0xf7a0.
- ينفّذ الكود لاحقًا عملية كتابة في الذاكرة عند global + 0x18، مضبطًا ذلك العنوان على الصفر.
- تتبع ذلك عمليات كتابة إضافية، جميعها مستمدة من نفس قيمة NVRAM التي يتحكم بها المهاجم.
- لا يُطبَّق أي فحص للحدود أو تحقق من السلامة أو ضبط للوصول في أي نقطة.
ونتيجة لذلك، يكتسب المهاجم القادر على التحكم في متغير IhisiParamBuffer القدرة على التأثير في مكان حدوث عمليات الكتابة هذه في الذاكرة. ورغم أن بدائية الكتابة مقيّدة إلى حد ما، إذ تتيح عادةً كتابة أصفار أو ثوابت صغيرة إلى عنوان عشوائي، فإنها لا تزال قوية بما يكفي لإفساد حالة البرامج الثابتة الحرجة.
في إثبات المفهوم الخاص بـ Binarly، يستهدف الهجوم المتغير العام gSecurity2، الذي يحمل مؤشرًا إلى Security2 Architectural Protocol (للحصول على شرح مفصّل لهذه التقنية الاستغلالية المحددة، راجع المستودع التالي "TheMalwareGuardian: Exploitation Technique SecureBoot Bypass gSecurity2 Corruption"). تُستشار هذه البروتوكول خدمة LoadImage لفرض سياسة Secure Boot، مما يعني أن الكتابة فوق gSecurity2 بمؤشر فارغ تعطّل فحوصات Secure Boot فعليًا أثناء التشغيل. والأهم أن هذا التجاوز شفاف بالنسبة لنظام التشغيل: فبمجرد الإقلاع، يظل Secure Boot يبدو ممكّنًا على مستوى نظام التشغيل رغم تعطيله بالكامل على مستوى البرامج الثابتة.
من الفروق المهمة أنه على المنصات القائمة على Insyde، يكون متغير IhisiParamBuffer عادةً مقفلًا للقراءة فقط، مما يمنع الاستغلال فعليًا على تلك الأنظمة دون ثغرة إضافية. ومن المفارقات أن هذا يعني أن المصنّع الذي قدّمت IBV الخاصة به نمط المتغير القابل للاستغلال في المقام الأول هو من بين الأقل تعرضًا، بينما تظل جميع المنصات الأخرى معرّضة للخطر. وفي الحالات التي يكون فيها المتغير مقفلًا، يمكن ربط تجاوز مثل BRLY-2023-005 للحصول على صلاحية الكتابة إلى المتغير قبل المضي في الاستغلال. أما على الأنظمة التي يكون فيها المتغير قابلًا للكتابة مباشرةً، فإن الهجوم مباشر وموثوق للغاية.
🎯 مسار الهجوم
يصف ما يلي الهجوم من البداية إلى النهاية باستغلال CVE-2025-3052، بافتراض مهاجم ذي امتيازات ولديه وصول على مستوى نظام التشغيل:
- ضبط متغير NVRAM: يضبط المهاجم متغير NVRAM المسمى IhisiParamBuffer من نظام التشغيل إلى عنوان هدف عشوائي، موجّهًا إياه إلى gSecurity2.
- تسجيل الحمولة: يسجّل المهاجم الوحدة الموقّعة القابلة للاستغلال في UEFI Boot Manager (أو يستبدل بها محمّل إقلاع نظام تشغيل موجودًا)، كما يسجّل وحدة ثانية غير موقّعة تحتوي على الحمولة الفعلية.
- إعادة التشغيل: بعد إعادة تشغيل النظام، تدخل البرامج الثابتة مرحلة اختيار جهاز الإقلاع (BDS) وتبدأ تنفيذ مدخلات الإقلاع المسجّلة.
- التنفيذ: تعمل الوحدة الموقّعة القابلة للاستغلال أولًا. تُستخدم بدائية الكتابة المقيّدة الخاصة بها للكتابة فوق gSecurity2 بقيمة فارغة، مما يعطّل فرض Secure Boot. وبعد تعطيل الفحوصات، تمضي البرامج الثابتة لتحميل وتنفيذ وحدة الحمولة غير الموقّعة، مما يمنح المهاجم تنفيذ تعليمات برمجية عشوائية في نهاية مرحلة DXE، قبل أن تتاح لنظام التشغيل أي فرصة لإنشاء دفاعاته الخاصة.
📦 الوحدات المتأثرة
حدّدت Microsoft أن 14 وحدة UEFI مختلفة كانت متأثرة، وعالجت المشكلة بإضافة تجزئاتها إلى Secure Boot dbx.
| Module Name | Authenticode SHA-256 Hash |
|---|---|
| BiosFlashShell-efi64-80.02.efi | C54A4060B3A76FA045B7B60EEAEBC8389780376BA3EF1F63D417BA1B5528E95 |
| BiosFlashShell-efi64-81.02.efi | CBFAA286144EB2D165A6B17245BAD4F73058436C7292BE56DC6EBA29A369ADDF |
| Dtbios-efi64-70.17.efi | 9D7E7174C281C6526B44C632BAA8C3320ADDD0C77DC90778CC14893882D74618 |
| Dtbios-efi64-70.18.efi | 9B1F35052CFC5FB06DABE5E8F7B747F081DA28D722DB59ADE253B9E38A7A3C76 |
| Dtbios-efi64-70.19.efi | E3CE55E584371D3F2FBCA2241EF0711FF80876EBF71BAB07D8ECEE645A40DCFC |
| Dtbios-efi64-70.20.efi | EE093913ABBD34CB8B5EA31375179A8B55A298353C03AFE5055AA4E8E3F705EF |
| Dtbios-efi64-70.21.efi | B4E1880425F7857B741B921D04FD9276130927CF90A427C454B970E7A2F442F9 |
| Dtbios-efi64-70.22.efi | CDA0B4A59390B36E1B654850428CBB5B4C7B5E4349E87ACDE97FB543736FF1D4 |
| Dtbios-efi64-71.17.efi | C87EFD057497F90321D62A69B311912B8EF8A045FE9C5E6BD5C8C1A4E6F39629 |
| Dtbios-efi64-71.18.efi | 9E19DD645235341A555D6AC0665591453AE13918ECD37DF22DFBEE91EAA9A2DA |
| Dtbios-efi64-71.19.efi | 63F67824FDA998798964FF33B87441857DA92F3A8EE3E04166EEC3156E4E6B82 |
| Dtbios-efi64-71.20.efi | 0BC4F078388D41AB039F87AE84CF8D39302CCBDD70C4ADEE02263EBF6A2DD328 |
| Dtbios-efi64-71.21.efi | E2AEC271B9596A461EB6D54DB81785E4E4C615CFDA5F4504BCC0A329248A4D36 |
| Dtbios-efi64-71.22.efi | 6B4328EBCBE46ED9118FF2D4472DE329D70BA83016DF7A6F50F8AF92342160A1 |
🤝 البحث والتعاون
هل تعمل على شيء مشابه؟ هل تبحث في UEFI أو أمان النواة أو الاستغلال أو موضوع أمني آخر مثير للاهتمام؟ إذا كنت بحاجة إلى مساعدة في تطوير استغلال، أو استكشاف تقنية، أو مجرد تبادل الأفكار، فلا تتردد في التواصل. أنا دائمًا منفتح لمناقشة الأبحاث، والمساعدة حيث أستطيع، والتعاون في المشاريع المثيرة للاهتمام. لا تتردد في التواصل معي على LinkedIn.