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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2023-6931 — CVE-2023-6931 إثبات مفهوم ذعر النواة | Kitploit
أدوات/GitHubGitHub/k0n9-log/cve-2023-6931
تحليل الذاكرة الجنائيتحليل الثغرات الأمنيةالاستغلالالتعلم والتعليماستغلال الملفات الثنائية
GitHubk0n9-log/cve-2023-6931

CVE-2023-6931

CVE-2023-6931 إثبات مفهوم ذعر النواة

عرض المستودع
22منذ سنة واحدةلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2023-6931

إثبات اختراق لتعطل النواة (Kernel Panic) لـ CVE-2023-6931

الوصف

CVE-2023-6931 هي ثغرة في perf_event تؤدي إلى تجاوز سعة مخزن مؤقت في الكومة (heap buffer overflow) ناتج عن تجاوز عدد صحيح في read_size لمجموعة.

ما هو حدث الأداء (perf event)؟

perf_events هو إطار لمراقبة وتحليل الأداء يوفره نواة لينكس. يتيح هذا الإطار تتبع مختلف البيانات المتعلقة بالأداء الناتجة عن مكونات العتاد والبرمجيات.

الاستخدامات الرئيسية

  • تتبع أحداث العتاد يتتبع أحداثًا مثل دورات وحدة المعالجة المركزية، عدد تعليمات التنفيذ، فقدان الذاكرة المخبأة، والمزيد.
  • تتبع أحداث البرمجيات يراقب أحداثًا مثل التبديل، أخطاء الصفحات، تبديل السياق، إلخ.
  • تتبع الأحداث المخصصة يتيح تتبع أحداث خاصة بتطبيقات معينة أو النواة.

مكونات perf

  • استدعاء النظام perf_event_open واجهة تسمح لمساحة المستخدم بتكوين والتحكم في أحداث الأداء داخل النواة. يُستخدم لإنشاء أو تجميع أو التحكم أو قراءة البيانات من الأحداث.
  • عدادات الأداء البيانات الفعلية التي يتتبعها المعالج والنواة، مثل عدد التعليمات المنفذة أو استخدام وحدة المعالجة المركزية.
  • مجموعات الأحداث تسمح بتجميع وإدارة أحداث أداء متعددة معًا. يعمل حدث قائد المجموعة كممثل للمجموعة، بينما تمثل أحداث الأشقاء الأحداث المتبقية داخل المجموعة.

المتطلبات

  1. يجب أن تكون قيمة /proc/sys/kernel/perf_event_paranoid 1 أو أقل.
  2. يجب أن يكون عدد واصفات الملفات التي يمكن فتحها 4100 على الأقل تقريبًا. يمكن التحقق من ذلك وتعديله باستخدام الأمر ulimit -n.
  3. يجب تعيين خيار النواة CONFIG_PERF_EVENTS.

الوصف

تنشأ الثغرة بسبب تجاوز عدد صحيح في read_size لمجموعة. تؤدي الدالة perf_event_validate_size عملية التحقق من صحة read_size. ومع ذلك، فإن الطريقة التي يتم بها التحقق من read_size تتحقق فقط من read_size للحدث الحالي.

النقطة الأساسية هي أنه خلال كل عملية تحقق، يتم التحقق فقط من الحدث الحالي، بينما لا يتم التحقق من الأحداث السابقة. إذا تم تعيين PERF_FORMAT_GROUP لقائد المجموعة، فإن مجرد إضافة حدث حالي يمكن أن يزيد من read_size لقائد المجموعة.

يؤدي هذا في النهاية إلى حدوث مشكلة في perf_read_group. يعتمد حساب event->read_size على read_format لقائد المجموعة، مضروبًا في nr_siblings. نظرًا لأن متغير read_size هو u16 بحجم 2 بايت، فإن القيمة القصوى التي يمكنه تخزينها هي 0xffff.

لاستغلال ذلك، يقوم المهاجم أولاً بإنشاء حدث قائد مجموعة مع تعيين جميع خيارات read_format الممكنة. بعد ذلك، يتم إنشاء العديد من أحداث الأشقاء. تقوم هذه الأشقاء فقط بتعيين PERF_FORMAT_TOTAL_TIME_RUNNING في read_format لضمان عدم وجود مشكلات في التحقق في perf_event_validate_size. ونتيجة لذلك، تصبح قيمة nr_siblings كبيرة جدًا، ولكن نظرًا لأن كل حدث شقيق يجتاز التحقق بشكل فردي، فلا توجد مشكلات في هذه المرحلة.

عندما يتم استدعاء perf_read_group في هذه الحالة، يستمر read_size لقائد المجموعة في الزيادة لأنه تم تعيين PERF_FORMAT_GROUP. في النهاية، يؤدي هذا إلى تجاوز عدد صحيح، ويقوم kzalloc بتخصيص مخزن مؤقت صغير جدًا. ومع ذلك، نظرًا لأن العدد الفعلي للأحداث كبير جدًا، يحدث تجاوز سعة مخزن مؤقت في الكومة (heap buffer overflow)، مما يؤدي إلى تعطل النواة (kernel panic).

تنزيل الأداة