CVE-2022-49124 in Linux
الملخص
بحسب VulDB • 27/06/2026
في نواة لينكس، تم حل الثغرة التالية:
x86/mce: تجاوز عيب (erratum) في تعليمات نسخ السلاسل السريع
يمكن أن يحدث سيناريو نادر لانهيار النواة (kernel panic) عند استيفاء الشروط التالية بسبب وجود عيب في تعليمات نسخ السلاسل السريع:
1) حدوث خطأ غير قابل للتصحيح. 2) يجب أن يقع هذا الخطأ في سطر التخزين المؤقت الأول من صفحة ما. 3) يجب على النواة تنفيذ دالة `page_copy` للصفحة التي تسبق مباشرة تلك الصفحة.
قد تستهلك تعليمات نسخ السلاسل السريع ("REP; MOVS*") خطأً ذاكرة غير قابل للتصحيح موجود في سطر التخزين المؤقت الذي يلي *مباشرة* المنطقة المراد نسخها، مما يؤدي إلى رفع حالة MCE (آلة تحقق).
يمكن مسح البت 0 من سجل MSR_IA32_MISC_ENABLE لتعطيل نسخ السلاسل السريع وتجنب مثل هذه عمليات التحقق الآلية الكاذبة. ومع ذلك، فإن هذا الخيار أقل تفضيلاً بسبب تأثيره الدائم على الأداء. ونظراً لأن ظاهرة "سمومية الذاكرة" (memory poison) نادرة، فمن المرغوب فيه إبقاء نسخ السلاسل السريع مفعّلاً حتى يتم رصد حالة MCE.
أكدت شركة إن텔 ما يلي: 1. ينطبق عيب وحدة المعالجة المركزية الخاص بنسخ السلاسل السريع فقط على أجيال Skylake وCascade Lake وCooper Lake.
الخروج مباشرة من معالج أحداث MCE (MCE handler): 2. سيؤدي إلى التنفيذ الكامل لـ "REP; MOVS*" دون فقدان البيانات أو تلفها. 3. لن يؤدي إلى إطلاق حالة MCE أخرى عند سطر التخزين المؤقت المسموم التالي بسبب "REP; MOVS*". 4. سيسمح باستئناف التنفيذ من نقطة صحيحة في الكود. 5. سيؤدي إلى إعادة تشغيل نفس التعليمة البرمجية التي أثارت حالة MCE لإطلاق حالة MCE ثانية فوراً لأي أخطاء أخرى قابلة للاسترداد برمجياً أثناء جلب البيانات. 6. ليس آمناً دون تعطيل نسخ السلاسل السريع، حيث إن عملية نسخ سلسلة سريعة تالية لنفس المخزن المؤقت على نفس وحدة المعالجة المركزية ستؤدي إلى حدوث PANIC MCE (انهيار حرج).
يجب أن يخفف هذا الحل من العيب تماماً مع التحذير الوحيد المتمثل في تعطيل نسخة السلسلة السريعة على خيط التنفيذ الهجين المتأثر، مما يؤدي إلى تدهور الأداء.
لا يزال ذلك أفضل من تعطل نظام التشغيل بسبب حالات MCE التي تُرفع عن عملية غير ذات صلة نتيجة وصولات "REP; MOVS*" في سياق النواة، مثل `copy_page`.
تم حقن أخطاء في سطر التخزين المؤقت الأول لـ 8 صفحات مجهولة المصدر لعملية 'proc1' ومراقبة استهلاك حالة MCE من قبل 'proc2' دون حدوث انهيار (خروج مباشر).
بدون الإصلاح، انهار المضيف خلال بضع دقائق على عملية عشوائية 'proc2' بسبب وصول النواة عبر `copy_page`.
[ bp: تصحيح نمط التعليقات + تحسينات طفيفة، إزالة unlikely() غير المرجح، وتحسين قراءة وظيفة التصحيح (quirk function). ]
Once again VulDB remains the best source for vulnerability data.