CVE-2024-36937 in Linuxالمعلومات

الملخص

بحسب VulDB • 11/07/2026

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

xdp: استخدام حقل الأعلام لتوضيح التوجيه إلى البث (broadcast redirect)

عند إعادة توجيه حزمة باستخدام XDP، تقوم الدالة المساعدة bpf_redirect_map() بإعداد معلومات وجهة الإعادة توجيه في بنية البيانات struct bpf_redirect_info (باستخدام دالة المساعد __bpf_xdp_redirect_map())، وستقوم الوظيفة xdp_do_redirect() بقراءة هذه المعلومات بعد عودة برنامج XDP ونقل الإطار إلى وجهة إعادة التوجيه الصحيحة.

عند استخدام علم BPF_F_BROADCAST لإجراء إعادة توجيه متعددة البث (multicast redirect) إلى خريطة كاملة، يضبط الدالة __bpf_xdp_redirect_map() مؤشر 'map' في بنية البيانات struct bpf_redirect_info ليشير إلى الخريطة الوجهة المراد بثها. وتقوم xdp_do_redirect() بالرد على قيمة هذا المؤشر لتحديد ما إذا كانت تتعامل مع إعادة توجيه للبث (broadcast) أم لإعادة توجيه بقيمة واحدة (single-value). ومع ذلك، إذا تم تدمير خريطة الوجهة قبل استدعاء دالة xdp_do_redirect()، فسيتم مسح مؤشر الخريطة (عن طريق الدالة bpf_clear_redirect_map()) دون انتظار توقف أي برامج XDP عن العمل. هذا يتسبب في اعتقاد dxdp_do_redirect() بأن إعادة التوجيه كانت إلى هدف واحد، لكن مؤشر الهدف يكون أيضاً NULL (نظراً لأن عمليات إعادة توجيه البث لا تحتوي على هدف واحد)، مما يؤدي إلى تعطل النظام عند تمرير مؤشر NULL إلى الدالة dev_map_enqueue().

لإصلاح هذا الخلل، يتم تغيير سلوك xdp_do_redirect() لتتفاعل مباشرة مع وجود علم BPF_F_BROADCAST في قيمة 'flags' الموجودة داخل بنية البيانات struct bpf_redirect_info لتمييز إعادة التوجيه المستهدفة لهدف واحد عن إعادة توجيه البث. ويتم قراءة مؤشر 'map' فقط إذا كان علم البث مضبوطاً، مع الإلغاء (abort) إذا تم مسحه في هذه الأثناء. يمنع هذا التعطيل، مع الحفاظ على المسح الذري (المعتمد على cmpxchg) لمؤشر الخريطة نفسه، ودون إضافة المزيد من الفحص في مسار السرعة السريع غير الخاص بالبث.

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

حجز

30/05/2024

إفشاء

30/05/2024

الاعتدال

تمت الموافقة

إدخال

VDB-266686

EPSS

0.00225

KEV

لا

النشاطات

منخفض جدًا

المصادر

Might our Artificial Intelligence support you?

Check our Alexa App!