العودة إلى التحديثات
UpdatedJul 26, 2026

pwnage24mtk — Updated!

استغلال الشهادات (Cert) لأجهزة MTK. يوجد خلل منطقي في عملية التحقق من الشهادات لدى MTK. مشابه لـ CVE-2023-20696.

مشاركة

pwnage24mtk

استغلال شهادة (Cert) لأجهزة MTK. توجد ثغرة منطقية في عملية التحقق من الشهادات في MTK. مشابهة لـ CVE-2023-20696. تم التصحيح. CVE-2023-20696 CVE-2025-20730

هناك بعض المشكلات في اكتشاف البنية (architecture). سأحتاج إلى إصلاحها عندما يتوفر لدي وقت. أو يمكن لأي شخص تقديم طلب سحب (pull request). هذه نسخة مبرمجة بأسلوب "vibe-coding"، وسأعيد كتابتها لاحقًا. لكنها قابلة للاستخدام الآن.

إخلاء مسؤولية

هذا المشروع مخصص للبحث فقط. تأكد من حصولك على إذن قبل استخدامه. غير مسموح بالاستخدام غير القانوني. غير مسموح باستخدام هذا الاستغلال لتقديم خدمات مدفوعة.

بالنسبة لأجهزة MTK، يتحقق الـ preloader من bl2_ext/lk/atf ثم يقفز إليها.

هذه الصور موقعة بشهادات ASN.1.

لكن هناك خلل منطقي في عملية تحليل ASN.1.

بالنسبة للأجهزة القديمة V5/V6، يتم تحديد محتوى الشهادة عبر bypass_mode 1.

في هذا الوضع، يتم الدخول إلى أي كائن (object).

لذلك يمكننا إنشاء شهادة مزيفة تحتوي على كائن 0x3 (سلسلة بتات).

الشهادة المزيفة غير معدلة. لذا يمكنها اجتياز التحقق.

الشهادة الحقيقية تقع تحت الشهادة المزيفة. ويمكننا وضع هاش الصورة وهاش ترويسة الصورة في بداية الشهادة الحقيقية.

بالنسبة لأجهزة V6 الجديدة، يتم تحديد محتوى الشهادة عبر bypass_mode 0

في هذا الوضع، يتم تخطي أي كائن باستثناء 0x30.

لذا يمكننا وضع هاش الصورة وهاش ترويسة الصورة في بداية الشهادة.

ثم نترك بقية الأشياء دون تعديل.

ثم يمكننا تعديل محتوى الصورة.

وبذلك نكتسب التحكم في EL3.

يمكنك تعديل (patch) ملف BL2_EXT لإزالة التحقق من lk أو atf أو gz.

ثم قم بتعديل LK لإزالة التحقق من lk_main_dtb (وإلا فسوف يتعطل النظام).

وتحتاج إلى تعديل LK لإزالة جميع أقفال مُحمّل الإقلاع (bootloader locks) بما في ذلك set_lock_state لتجنب إعادة القفل أو بعض الأعطال.

الاستخدام:

python parse-part-img.py [the original image file] --split -o out

ثم يمكنك رؤية الصور المنفصلة (مثل lk و bl2_ext و lk_main_dtb و aee)

بعد التعديل بالنسبة لأجهزة v6 الجديدة python sign_mtk_cert.py [single image file] -w بالنسبة للأجهزة القديمة v6 / أجهزة v5 python sign_mtk_cert.py [single image file] -w --legacy

ثم قم بإدراج الصورة الموقعة الجديدة مرة أخرى

python build-part-img.py replace [original image file] --name [the single image name you want to insert back] -- file [the new signed single image]

مثال:

4c8558aaea5e8d939ba978d6b10be14d 17fe099c27560ec4b0dd0ab1540e1442 b56f0026951f2c58612b315b44423437 صورة

الفئات