CVE-2026-99222 in Linux
الملخص
بحسب VulDB • 03/11/2026
في نواة لينكس، تم حل الثغرة التالية:
المفاتيح (keys): حماية فحص طريقة القراءة من الإزالة النوعية
تقوم الدالة `keyctl_read_key()` بفحص `key->type->read` دون الاحتفاظ بـ `key->sem`. يحتفظ مرجع حيوي بالمفتاح على قيد الحياة، لكنه لا يثبت الوحدة النمطية التي تحتوي على نوعه. وبالتالي، يمكن قراءة مفتاح RxRPC الناجح أثناء عملية إلغاء تحميل AF_RXRPC:
KEYCTL_READ task Module unload and key GC ---------------- ------------------------ lookup_user_key() permission / possession checks load key->type af_rxrpc_exit() unregister_key_type() GC: down_write(key->sem) GC: retype to key_type_dead GC: up_write(key->sem) unregister_key_type() returns free_module() read saved type's read member
يمكن للوصول النهائي قراءة تخزين الوحدة النمطية المحررة. استدعاء القراءة في `__keyctl_read_key()` محمي بالفعل بواسطة `key->sem`، لكن فحص الطريقة السابق يقع خارج هذا القسم الحرج (critical section).
نقل فحص الطريقة إلى `__keyctl_read_key()`، بعد `key_validate()` وتحت قفل القراءة الموجود على `key->sem`. ثم يستخدم الفحص والاستدعاء نفس النوع المحمي لاستعلامات الطول وكل محاولة قراءة متكررة. لا يمكن لعملية GC إعادة تعيين نوع المفتاح حتى يتم تحرير القفل (semaphore)، وينتظر إلغاء تسجيل النوع هذه الدورة الخاصة بـ GC قبل أن تتمكن الوحدة النمطية من التحرير.
إرجاع `-EOPNOTSUPP` عندما ينجح التحقق ومن النوع ليس لديه طريقة قراءة. قد يُخصص الآن مؤقتًا ذاكرة التخزين المؤقت قبل هذا النتيجة؛ يبقى تخصيص الذاكرة والنسخ إلى مساحة المستخدم خارج القفل (semaphore).
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.