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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2023-20938 — تحليل تقني وإثبات مفهوم لاستغلال ثغرة CVE-2023-20938، وهي ثغرة من نوع use-after-free في مشغل Binder لنواة أندرويد، مما يتيح تصعيد الامتيازات محلياً. | Kitploit
أدوات/GitHubGitHub/jaf0rk/cve-2023-20938
أمان أندرويدتحليل الثغرات الأمنيةالاستغلالاستغلال الملفات الثنائية
GitHubjaf0rk/cve-2023-20938

CVE-2023-20938

تحليل تقني وإثبات مفهوم لاستغلال ثغرة CVE-2023-20938، وهي ثغرة من نوع use-after-free في مشغل Binder لنواة أندرويد، مما يتيح تصعيد الامتيازات محلياً.

عرض المستودع
13715منذ 4 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2023-20938

English

تحليل الثغرة

  1. يقوم العميل A والعميل B بإنشاء اتصال Binder عبر مدير السياق servicemanager
  2. ينشئ A العقدة 0xbeef (binder_new_node)، ويشير B إلى العقدة 0xbeef عبر ref->target_node
  3. يقوم B أولاً بمعالجة target_node 0xbeef بشكل صحيح، ويخزن binder_transaction الذي يشير إلى target_node 0xbeef في قائمة معاملات A (binder_enqueue_work_ilocked)، مما يسمح لـ A بإعادة الإشارة إلى المؤشر المعلق الذي تم تحريره
  4. يستخدم B حجم offsets_size غير المحاذي لدخول كود معالجة الأخطاء (IS_ALIGNED)، مما يؤدي إلى تمرير buffer_offset الذي لا يزال 0 إلى دالة binder_transaction_buffer_release مما يؤدي إلى تشغيل الثغرة
  5. تستدعي دالة binder_transaction_buffer_release دالة binder_dec_node_nilocked عبر binder_dec_node، مما يقلل عداد local_strong_refs للعقدة 0xbeef، ولكن مثيل العقدة يحتوي على عدادات وقوائم مراجع متعددة، ولن يتم تحريرها إلا عندما تكون جميع العدادات صفرًا
  6. يؤدي إغلاق binder الخاص بـ B إلى تشغيل دالة binder_cleanup_ref_olocked، وفي هذه المرحلة يتم أيضًا استدعاء binder_dec_node_nilocked. عندما تُرجع binder_dec_node_nilocked القيمة true، لن يتم مسح المؤشر ref->node الذي يشير إلى العقدة (0xbeef)
  7. بعد ذلك سيتم استدعاء binder_free_ref، وفي دالة binder_free_ref سيتم تحرير العقدة 0xbeef
  8. سيقوم A بإعادة الإشارة إلى العقدة 0xbeef المحررة في دالة binder_thread_read (binder_thread_read)

ملاحظة إضافية: في بيئة Android الحقيقية، لا يمكن للتطبيقات العادية تسجيل الخدمات عبر servicemanager، ولكن يمكنها ربط العمليتين عبر ITokenManager. تستخدم حالة الاختبار هذه ITokenManager.

تنزيل الأداة