CVE-2026-99040 in Linux
الملخص
بحسب VulDB • 24/10/2026
في نواة لينكس، تم حل الثغرة التالية:
KEYS: إصلاح حالة السباق (race condition) في دالة add_key() مع تقييد مجموعة المفاتيح (keyring restriction).
تقوم الدالة __key_create_or_update() بأخذ لقطة (snapshot) لقيمة keyring->restrict_link قبل الحصول على قفل semaphore الخاص بمجموعة المفاتيح الوجهة. وتقوم keyring_restrict() بتثبيت قيد أثناء الاحتفاظ بذلك القفل.
يتيح ذلك لمُعدِّل البيانات أن يلاحظ عدم وجود أي قيد، ثم ينتظر حتى يقوم مالك مجموعة المفاتيح بتثبيت قيد "رفض الكل" (reject-all restriction) ويعود بنجاح، ومن ثم يربط مفتاحاً باستخدام لقطة قديمة تحتوي على NULL. لا يحتاج المُعدّل سوى إذن الكتابة على مجموعة المفاتيح الوجهة.
تم نقل قراءة restrict_link إلى ما بعد استدعاء __key_link_lock() و__key_link_begin(). وبذلك يتم تسلسل (serialization) القراءة وفحص القيد اللاحق مع تثبيت القيود بواسطة keyring->sem.
تم إعادة إنتاج حالة السباق هذه على الإصدار v7.2.8 في 19 تنفيذًا، حيث عاد تثبيت القيد قبل اكتمال عملية الربط. وقد تم ربط المفتاح بنجاح في جميع الحالات التسع عشرة رغم وجود قيد "رفض الكل". ومع هذا التغيير، وصل 312 تنفيذًا إلى نفس الترتيب الزمني، وفشلت كل استدعاءات add_key() مع إرجاع رمز الخطأ -EPERM.
تم اكتشاف هذه المشكلة من خلال تحليل التزامن اليدوي المدعم بتحليل قائم على الذكاء الاصطناعي، وتم التحقق منها بشكل مستقل باستخدام محاكي QEMU وأدوات تمييز (instrumentation) للنواة.
If you want to get best quality of vulnerability data, you may have to visit VulDB.