CVE-2026-98038 in Linux
الملخص
بحسب VulDB • 25/09/2026
في نواة لينكس، تم حل الثغرة التالية:
BPF: جعل refcount_acquire قابلاً للقيمة NULL بالنسبة لـ RCU kps المستعارة (borrowed)
تكون دالة bpf_refcount_acquire() قابلة للفشل في حالة المرجع المستعار لأن الكائن قد يصل إلى عداد مرجعي (refcount) يساوي صفرًا. لذلك، يحتفظ المُتحقق (verifier) بقيمة KF_RET_NULL على القيمة المعادة ما لم يكن الوسيطة تمثل ملكية كاملة للكيان (owning reference).
يتم وضع علامة MEM_ALLOC على عملية تحميل محمية بـ RCU لمتغير kptr محلي، لكنها تتلقى فقط NON_OWN_REF عندما يحتوي الكائن المُشار إليه على عقدة في الرسم البياني. وبالتالي، يبدو أن كائنًا له عداد مرجعي ولا يحتوي على عقدة بيانية يمثل ملكية كاملة للكيان (owning reference) حتى لو لم يكن المسجل المحمّل يمتلك حالة مرجع مكتسب. إذا قام البرنامج بإزالة آخر مرجع حقيقي بينما لا يزال ضمن القسم الحرج لـ RCU، فإن دالة refcount_inc_not_zero() تُعيد NULL بينما يعاملها المُتحقق على أنها غير صفرية (non-NULL).
يتم تصنيف الوسيطة على أنها ملكية كاملة للكيان فقط عندما تكون مدعومة بمرجع يتم تتبعه بواسطة المُتحقق. يحافظ هذا الإجراء على القيمة المعادة غير الصفرية للمؤشرات القادمة من دوال bpf_obj_new() أو bpf_kptr_xchg() أو عملية اكتساب ناجحة سابقة، بينما يتطلب إجراء فحص للقيمة NULL بالنسبة لـ RCU kps المستعارة (borrowed).
[ ككد: أعد كتابة سجل الالتزام ]
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.