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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
optee-qemu — بيئة بنواة معرضة للثغرات لاستغلال سائق TEE (CVE-2021-44733) | Kitploit
أدوات/GitHubGitHub/pjlantz/optee-qemu
أمان الأنظمة المدمجةتحليل الثغرات الأمنيةالاستغلالالاختبار العشوائيالتعلم والتعليماستغلال الملفات الثنائيةمختبرات وتدريب عملي
GitHubpjlantz/optee-qemu

optee-qemu

بيئة بنواة معرضة للثغرات لاستغلال سائق TEE (CVE-2021-44733)

عرض المستودع
76118منذ 4 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2021-44733: التَّنقيب والاستغلال عن ثغرة استخدام بعد التحرير (use-after-free) في نظام TEE الفرعي في نواة لينكس

مؤخرًا، تم اكتشاف ثغرة استخدام بعد التحرير (use-after-free) في نظام TEE الفرعي في نواة لينكس، حتى الإصدار 5.15.11 وما يشملها، وقد تم تخصيص CVE-2021-44733 [1] لها.

للوهلة الأولى، لم تكن تبدو قابلة للاستغلال لعدة أسباب، لكن بعد مزيد من التحليل لمسار الكود القابل للثغرة ومن خلال تنفيذ استغلال إثبات مفهوم مبدئي، كان من الممكن الكتابة فوق مؤشر دالة في النواة. لا يتم تقديم حمولة رفع صلاحيات في هذه المقالة، ومع ذلك، فإن البيئة الكاملة لتشغيل OPTEE والاستغلال متاحة لمزيد من الاختبار، انظر «إعداد البيئة».

خلفية

بيئة التنفيذ الموثوقة (TEE) هي نظام تشغيل موثوق يعمل في بيئة آمنة معينة، على سبيل المثال TrustZone على معالجات ARM. يتولى برنامج تشغيل TEE التفاصيل اللازمة للتواصل مع TEE. من بين الواجبات الأكثر أهمية لبرنامج التشغيل توفير واجهة برمجة تطبيقات عامة نحو TEE استنادًا إلى مواصفات Globalplatform TEE Client API [3]، وكذلك إدارة الذاكرة المشتركة بين لينكس وTEE. يمكن تمكين هذا النظام الفرعي عن طريق تكوين CONFIG_OPTEE في تكوينات النواة لمعماريات ARM.

يحتوي العالم الآمن على نظام التشغيل الموثوق المسمى OP-TEE OS [4]. وفوق هذا النظام، من الممكن تشغيل ما يسمى بالتطبيقات الموثوقة (TAs) التي يمكنها تنفيذ بعض العمليات في البيئة المعزولة، انظر الشكل 1.

TEE overview
الشكل 1: نظرة عامة على TEE - من عرض Linaro التقديمي [5]

يمكن للعالم العادي (فضاء المستخدم/النواة في لينكس) التفاعل مع هذه التطبيقات باستخدام تطبيقات العميل (CAs) وواجهة البرمجة التي يكشفها نظام TEE الفرعي. يمكن لتطبيق CA فتح جلسة نحو TA محددة واستدعاء الدوال التي تنفّذها TA. يتم تمرير أي وسائط ذهابًا وإيابًا بين TA وCA باستخدام الذاكرة المشتركة. يتم وصف التفاعل بين CA وTA باستخدام جميع استدعاءات النظام ذات الصلة فيما يلي.

  1. يفتح تطبيق CA /dev/tee[0-9] للتواصل مع برنامج التشغيل. لاحظ أنه بالنسبة للطريقة التقليدية لاستخدام هذه الواجهات البرمجية، يتم ذلك ضمنيًا باستخدام libteec.

  2. يمكن لتطبيق CA تسجيل الذاكرة المشتركة باستخدام IOCTL TEE_IOC_SHM_ALLOC. يخصص هذا الذاكرة المشتركة ويعيد واصف ملف يمكن لفضاء المستخدم استخدامه كجزء من mmap.

  3. الخطوة التالية هي إنشاء جلسة باستخدام IOCTL TEE_IOC_OPEN_SESSION وتحديد uuid لـ TA محددة. هذا uuid مضمّن بشكل ثابت أثناء تجميع TA.

  4. لاستدعاء أي دالة محددة في TA، يقوم CA باستدعائها بتحديد معرّف الدالة مع أي وسائط إدخال، ويتم ذلك باستخدام TEE_IOC_INVOKE.

  5. عندما ينتهي CA من جميع الطلبات، يمكن إغلاق الجلسة باستخدام TEE_IOC_CLOSE_SESSION.

Session between CA and TA
الشكل 2: جلسة بين CA وTA - من عرض Linaro التقديمي [5]

جزء كبير من الاتصال بين العملاء وTEE يكون غير شفاف بالنسبة لبرنامج التشغيل. المهمة الرئيسية لبرنامج التشغيل هي إدارة السياق، واستقبال الطلبات من العملاء، وإعادة توجيهها إلى TEE، وإرسال النتائج مرة أخرى [2].

التَّنقيب (Fuzzing) عن برنامج تشغيل TEE

تنزيل الأداة