CVE-2026-74337 in Linuxالمعلومات

الملخص

بحسب VulDB • 15/08/2026

في نواة لينكس، تم حل الثغرة التالية:

bpf: إصلاح حالة الجمود (deadlock) الناتجة عن إعادة الدخول في NMI/tracepoint على أقفال LRU

يمكن لبرامج BPF الخاصة بـ NMI و tracepoint أن تعيد الدخول إلى قفل LRU الخاص بكل معالج أو القفل العالمي الذي يحمله بالفعل `bpf_lru_pop_free()` / `push_free()` على نفس المعالج، مما يؤدي إلى حالة جمود من نوع AA-deadlock. يبلغ Lockdep عن "عدم اتساق {INITIAL USE} -> {IN-NMI}" على &l->lock (syzbot c69a0a2c816716f1e0d5) وعن "اكتشاف قفل تكراري محتمل" على &loc_l->lock (syzbot 18b26edb69b2e19f3b33).

كانت المحاولات السابقة للإصلاح، القائمة على trylock و rqspinlock (انظر الروابط)، قد رُفضت لأنها تُضعف الموثوقية.

يحوّل هذا التصحيح كل موقع لقفل LRU إلى `rqspinlock_t` ويضيف مسار استعادة لبعض نوافذ الفشل لتجنب تسرب العقد.

استعادة الفشل:

- المستوى الأعلى لـ *_pop_free: إرجاع NULL؛ حيث يعامل `prealloc_lru_pop()` ذلك بالفعل على أنه عدم وجود عنصر للتحرير (-ENOMEM). - السرقة عبر المعالجات (Cross-CPU): تخطي قفل loc_l الخاص بالعقدة المسروقة، ومحاولة المعالج التالي. - فشل القفل المحلي بعد السرقة: نشر العقدة المسروقة إلى قائمة `free_llist` الخاصة بكل معالج وخالية من الأقفال؛ حيث ستقوم عملية الاستخراج التالية (pop) على هذا المعالج بالتقاطها. - فشل push_free: تحديد حالة العقدة كـ pending_free=1. تقوم الدوال `__local_list_flush()` و `__local_list_pop_pending()` باسترداد العقدة من قائمة pending_list. كما تسترد الدالة `__bpf_lru_list_shrink_inactive()` العقدة من القائمة غير النشطة (inactive list). يتم استرداد العقد الموجودة في القائمة النشطة بواسطة `__bpf_lru_list_shrink()` أو بعد أن تقوم `__bpf_lru_list_rotate_active()` بترقيعها إلى الحالة غير النشطة.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

مسؤول

Linux

حجز

15/08/2026

إفشاء

15/08/2026

الاعتدال

تمت الموافقة

إدخال

VDB-390300

EPSS

0.00166

KEV

لا

النشاطات

منخفض جدًا

المصادر

Want to know what is going to be exploited?

We predict KEV entries!