
استغلال إثبات المفهوم لتسرب معلومات FUSE في نواة لينكس (CVE-2024-44947)، يوضح كشف الذاكرة بعد EOF عبر mmap ويتضمن تحليل تفريغ الذاكرة.
الوصف:
في نواة لينكس، تم حل الثغرة التالية: fuse: تهيئة محتويات الصفحات التي تتجاوز نهاية الملف قبل تعيينها على أنها محدّثة. لا تقوم دالة fuse_notify_store()، على عكس fuse_do_readpage()، بتمكين تصفير الصفحة (لأنها يمكن استخدامها لتغيير محتويات صفحة جزئية). لذا يجب على fuse_notify_store() أن تكون أكثر حذرًا في تهيئة محتويات الصفحة بالكامل (بما في ذلك أجزاء الصفحة التي تتجاوز نهاية الملف) قبل وضع علامة "محدّثة" على الصفحة. يمكن للكود الحالي أن يترك محتويات الصفحة التي تتجاوز نهاية الملف غير مهيأة، مما يجعل هذه المحتويات غير المهيأة مرئية للمستخدم عبر mmap(). هذا تسريب معلومات، لكنه يؤثر فقط على الأنظمة التي لا تفعّل التهيئة عند التخصيص (عبر CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y أو معامل سطر الأوامر المقابل للنواة).
تفريغ ذاكرة موسع: تم مضاعفة حجم تفريغ الذاكرة إلى 8 صفحات، مما يوفر نظرة أوسع على التسريبات المحتملة.
محرك الاستدلال: تم إدخال محرك استدلال بسيط يقوم بمسح الذاكرة المُفرغة بحثًا عن أنماط محددة، مثل ترويسات "HTTP"، وترويسات "ELF"، وغيرها من هياكل البيانات المعروفة. يساعد ذلك في تحديد وتصنيف البيانات المسربة بشكل أكثر فعالية.
عمليات FUSE محسّنة: تمت إضافة عملية FUSE أكثر تعقيدًا بحمولة أكبر لزيادة فرص تفعيل الثغرة في ظروف مختلفة.
العناصر العشوائية والديناميكية: يتضمن الاستغلال (PoC) عناصر عشوائية في بعض العمليات لمحاكاة سيناريوهات مختلفة وربما إثارة نتائج متنوعة، مما يجعل الاستغلال أكثر متانة.
تحليل الذاكرة التفصيلي: يقوم الاستغلال (PoC) الآن بإجراء تحليل تفصيلي لتفريغ الذاكرة، وطباعة القيم السداسية عشرية، وتحديد تسريبات البيانات المحتملة من خلال المطابقة الاستدلالية.
gcc -o fuse_poc_advanced fuse_poc_advanced.c
sudo ./fuse_poc_advanced
تم تصميم هذا الاستغلال المحسّن (PoC) للمستخدمين المتقدمين والباحثين، مما يوفر إطارًا أكثر شمولاً للتحقيق في ثغرة FUSE واستغلالها. يتضمن عناصر ديناميكية، معالجة ذاكرة متطورة، وتحليل استدلالي، مما يجعله مناسبًا لسيناريوهات تحليل الثغرات واستغلالها التفصيلية.