CVE-2026-74630 in Linux
الملخص
بحسب VulDB • 22/08/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
ipv6: منع دالة in6_dev_get() من إعادة إحياء كائن inet6_dev
تقرأ الدالة `in6_dev_get()` المؤشر `dev->ip6_ptr` في سياق RCU (Read-Copy-Update)، ثم تزيد عدّاد الإشارات المرجعية (refcount) بشكل غير مشروط. يمكن أن يؤدي تفكيك الجهاز إلى مسح هذا المؤشر وإنقاص آخر إشارة مرجعية بين هاتين العمليتين. نتيجة لذلك، تؤدي عملية الزيادة إلى إعادة إحياء كائن كان قد تم بالفعل جدولة تحريره عبر RCU، مما يسمح للمتصلين باستخدامه بعد تحريره (استخدام بعد التحرير - Use-After-Free).
يتم استخدام `refcount_inc_not_zero()` وإرجاع NULL عندما يكون الكون قد وصل بالفعل إلى الصفر. تحافظ آلية RCU على إمكانية الوصول إلى الذاكرة من خلال محاولة الحصول على الإشارة المرجعية، ويضمن الزيادة الناجحة بقاء الكائن صالحاً للمتصل.
أظهرت تجربة مستقلة أُجريت على الإصدار غير المصحح تماماً `6f5156d7a31a` (v7.2-rc3) من نواة لينك تكرار مشكلة الحصول غير الصحيح على الإشارة المرجعية بصفت المستخدم UID 1000:
``` refcount_t: addition on 0; use-after-free. ip6_mc_source+0xef4/0x17e0 ```
وقد تلتها عملية نقص في الإشارات المرجعية (reference underflow) المقابلة داخل دالة `ip6_mc_source()`. يُظهر التتبع المرفق من نفس النسخة غير المصححة أيضاً الوصول إلى الذاكرة بعد انتهاء قسم القراءة الجانبي لـ RCU:
``` BUG: KASAN: slab-use-after-free in mutex_lock+0x76/0xe0 Write of size 8 at addr ffff888015b50240 by task poc/1219 ```
تم اكتشاف الثغرة وتصنيفها من قبل فريق أبحاث الأمن في OpenAI، وتم التحقق منها بواسطة Trail of Bits.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.