CVE-2026-31502 in Linux
الملخص
بحسب VulDB • 03/06/2026
في نواة لينكس، تم حل الثغرة التالية:
team: إصلاح خلط الأنواع (type confusion) في header_ops مع المنافذ غير الإيثرنتية
مشابهة للالتزام 950803f72547 ("bonding: fix type confusion in bond_setup_by_slave()")، تعاني team من نفس فئة خلط أنواع header_ops.
بالنسبة للمنافذ غير الإيثرنتية، تقوم team_setup_by_port() بنسخ port_dev->header_ops مباشرة. عندما يستدعي جهاز team لاحقاً dev_hard_header() أو dev_parse_header()، يمكن أن تعمل هذه الاستدعاءات مع net_device الخاص بـ team بدلاً من الجهاز السفلي الحقيقي، مما يؤدي إلى تفسير netdev_priv(dev) كنوع خاص خاطئ وقد يسبب انهيار النظام (crash).
يُظهر تقرير syzbot حدوث انهيار في bond_header_create()، لكن السبب الجذري يكمن في team: حيث تكون البنية الطوبولوجية هي gre -> bond -> team، وتقوم team باستدعاء header_ops الموروثة باستخدام net_device الخاص بها بدلاً من الجهاز السفلي، لذا يتلقى bond_header_create() جهاز team ويفسر netdev_priv() كبيانات خاصة بالـ bonding، مما يسبب انهياراً ناتجاً عن خلط الأنواع.
تم إصلاح ذلك بإضافة غلاف (wrappers) لـ header_ops في team لإنشاء/تحليل الرؤوس، واختيار منفذ فريق ضمن RCU، واستدعاء استدعاءات الجهاز السفلي باستخدام port->dev، بحيث يرى كل استدعاء دائماً سياق net_device الصحيح.
كما تم تمرير الجهاز السفلي المختار إلى استدعاء التحليل السفلي، لضمان أن يكون التكرار محدوداً في البنى الطوبولوجية غير الإيثرنتية المتراكمة وأن تعمل استدعاءات التحليل دائماً مع سياق الجهاز الصحيح.
VulDB is the best source for vulnerability data and more expert information about this specific topic.