ترجمة آلية لم تُراجَع بعد. النص الإنجليزي هو المرجع في حال الاختلاف.
الملخص
يقوم نظام إدارة الذاكرة في arm64 بإبطال عنوان افتراضي واحد من التحويلات عبر الدالة invalidate_tlb_page() في الملف arch/arm64/core/mmu.c، مما يُصدر أمر TLBI VAE1{IS} بمعامل من النوع virt >> 12. يقوم هذا المعامل بترميز معرف النطاق ASID في البتات [63:48]، لذا فإن عملية الإبطال تطابق دائماً المعرف ASID 0 (جداول صفحات النواة) والإدخالات العامة فقط. ومع ذلك، يتم تخصيص معرفات النطاق ASID بدءاً من الرقم 1 في الدالة arch_mem_domain_init()، وكل ورقة خاصة بالنطاق يتم إنشاؤها بواسطة private_map() يتم تعيينها بـ MT_NG أي أنها غير عامة. ونتيجة لذلك، فإن الترجمة المخزنة مؤقتاً للنطاق تنجو من عملية الإبطال. جميع المستدعين للدالة invalidate_tlb_page() يمثلون مسارات طلب الصفحات. عندما تقوم خوارزمية الإخلاء باستعادة إطار ما، تستدعي الدالة page_frame_prepare_locked() في الملف kernel/mmu.c الدالة arch_mem_page_out()، والتي تحدد أن ورقة النواة غير صالحة، وتنقُل الوصف غير الصالح إلى كل نطاق عبر sync_domains()، ثم تقوم بمسح المعرف ASID 0 فقط. تقوم الدالة do_page_fault() فوراً بإعادة استخدام نفس إطار الصفحة للتعيين القادم من خلال الدالة arch_mem_page_in(). الخيط التابع للمستخدم الذي قام مسبقاً بلمس الصفحة المُخلات — مثل قسم k_mem_partition المضاف بواسطة arch_mem_domain_partition_add()، أو مكدس خاص به تم تعيينه بواسطة map_thread_stack() — يحتفظ بترجمة قراءة وكتابة صالحة لبرنامج المستوى EL0 لذلك الإطار المادي تحت معرف ASID الخاص به. يمكن للشيفرة غير الممتازة التي تعمل في خيط مستخدم فرض ضغط على الذاكرة لإجبار الإخلاء ثم الاستمرار في الوصول إلى العنوان القديم، مما يتيح الوصول للقراءة والكتابة إلى أي شيء تضعه النواة لاحقاً في هذا الإطار: بيانات المشرف، أو قسم نطاق ذاكرة آخر، أو مكدس خيط آخر. هذا يُبطل العزل الذيفُترض أن تفرضه تعليمة CONFIG_USERSPACE، مما يسمح بالكشف عن المعلومات وفساد الذاكرة وصولاً إلى الاختراق الكامل للنظام. يتحول الإصلاح إلى استخدام التنفيذ TLBI VAAE1{IS}، والذي يطابق كل معرف ASID والإدخالات العامة وغير العامة معاً، بحيث لا تنجو أي ترجمة مُوسومة بنطاق من عملية إخراج الصفحة، أو تحديث بت التغيير، أو مسح علم الوصول. يتطلب الاستغلال بناء إصدار لـ arm64 مع تفعيل كل من CONFIG_USERSPACE وCONFIG_…