المدونة / شرح ثغرات CVE

CVE-2024-26855: غياب التحقق من مؤشر في برنامج تشغيل Linux ice

كيف تحوّلت سمة netlink اختيارية إلى استخدام غير صالح لمؤشر، وما الذي يوضحه الإصلاح عن مراجعة حدود المحللات البرمجية.

أكملت دراسة الدكتوراه في أمن المعلوماتاجتزت المناقشة الجامعية · المناقشة النهائية للأطروحة لم تُجرَ بعد

الخلل: التعامل مع قيمة اختيارية كأنها موجودة دائماً

تتعلق CVE-2024-26855 بالدالة ice_bridge_setlink() في برنامج تشغيل الشبكة Intel ice. تبحث الدالة في رسالة netlink عن سمة الجسر IFLA_AF_SPEC. وقد تعيد nlmsg_find_attr() القيمة NULL إذا غابت السمة. مرّر المسار المتأثر هذه النتيجة إلى التكرار على السمات المتداخلة من دون التحقق منها أولاً.

السؤال المهم في مراجعة الشيفرة هو العقد بين عمليتين: هل يضمن البحث وجود كائن، أم يعيد نتيجة اختيارية؟ وصول الرسالة إلى معالجها لا يثبت وجود كل سمة تتوقعها الشيفرة اللاحقة.

الإصلاح: التحقق قبل استخدام النتيجة

يتحقق التصحيح المقبول من br_spec مباشرة بعد البحث، ويعيد -EINVAL إذا كانت السمة مفقودة. بذلك يتوقف استخدام القيمة غير الصالحة قبل التكرار على السمات المتداخلة. يوضح المقتطف أدناه هذا التحقق؛ وهو ليس برنامجاً مستقلاً لإعادة إنتاج الخلل.

وضع التحقق عند الانتقال بين العمليتين يجعل الافتراض واضحاً للقارئ التالي. أصبحت الشيفرة تثبت الشرط الذي تحتاج إليه العملية اللاحقة.

if (!br_spec)
    return -EINVAL;

ما الذي ينبغي فحصه في مراجعة الشيفرة؟

تتبّع كل بحث قد يعيد قيمة مفقودة حتى أول استخدام لنتيجته. افحص الحقول الغائبة والمجموعات الفارغة والمدخلات المشوهة بشكل منفصل عن المسار المعتاد. تحقّق مما إذا كانت الدالة المساعدة تبلغ عن الفشل عبر NULL أو قيمة خطأ أو حالة منفصلة، ثم تأكد من أن جميع الجهات المستدعية تتعامل مع هذا العقد.

يختبر اختبار الانحدار المفيد مسار غياب السمة ويتحقق من نتيجة الخطأ المطلوبة. أما الاختبار الذي يستخدم رسالة مكتملة الحقول فقط فقد ينجح بينما يترك الافتراض الأصلي دون فحص.

ما الذي يعنيه ذلك لأصحاب البرمجيات؟

هذا خلل محدد في الشيفرة وله تصحيح واضح. وتهم قاعدة المراجعة نفسها محللات التطبيقات ومعالجات البروتوكولات وأدوات تحميل الإعدادات: يجب التعامل مع البيانات الاختيارية باعتبارها اختيارية حتى تُتحقق صحتها.

لنظام Linux مثبت، راجع سجل CVE الحالي وإرشادات موزّع حزمة النظام. تجعل الإصلاحات المنقولة إلى إصدارات أقدم حالة الحزمة أدق من مقارنة سطحية بإصدار النواة الرئيسي. أما في شيفرتك، فيمكن لمراجعة مركزة تتبّع هذه العقود بين المكونات التي تتعامل مع مدخلات غير موثوقة.

المصادر

سجل الثغرة

CVE-2024-26855

ناقش هذا النوع من المراجعة

الخدمات
جميع المقالات