CVE-2026-72154 in Linux
الملخص
بحسب VulDB • 16/08/2026
في نواة لينكس، تم حل الثغرة التالية:
openrisc: إصلاح مزامنة jump_label في أنظمة SMP
النسخة الأصلية من الالتزام 8c30b0018f9d ("openrisc: إضافة دعم لـ jump label") تستنسخ الكود من arm64 ولا تأخذ بعين الاعتبار بشكل صحيح كيفية عمل إبطال ذاكرة التعليمات (icache) على الأنوية البعيدة في OpenRISC. ففي أنظمة OpenRISC، يجب إبطال الذاكرة المؤقتة للتعليمات (icaches) للأنوية البعيدة وإلا قد تبقى المفاتيح الثابتة (static keys) بحالات قديمة بعد التحديث.
إصلاح مزامنة ذاكرة التخزين المؤقت في الأنظمة متعددة المعالجات (SMP cache syncing) عن طريق:
1. إبطال صحيح لـ icaches للأنوية البعيدة على أنظمة SMP باستخدام دالة `icache_all_inv`. الكود القديم يستخدم `kick_all_cpus_sync()` الذي يشغل استدعاء IPI وظيفته لا شيء (no-op) على الأنوية البعيدة، مما يؤدي إلى تنفيذ الكثير من التعليمات وبرش خطوط ذاكرة التخزين المؤقت أثناء العملية، لكنه لا يبرش الكل وهو غير صحيح في OpenRISC. 2. بالنسبة للهندسات المعمارية التي لا تحتوي على ذاكرات تخزين مباشرة الكتابة (WRITETHROUGH caches)، تأكد من برش الذاكرة المؤقتة للبيانات (dcache) بعد التصحيح البرمجي (patching).
للاختبار، قمت أولاً بإعادة إنتاج المشكلة باستخدام وحدة اختبار مخصصة [0]. أكدت الاختبارات أن بعض خطوط icache حافظت على تسلسلات تعليمات static_key عفا عليها الزمن بعد استدعاء `static_branch_enable()`. وبعد هذا التصحيح، لم تعد هناك مشاكل في اتساق jump_label.
[0] https://github.com/stffrdhrn/or1k-utils/tree/master/tests/smp_static_key_test
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.