CVE-2026-64551 in Linux
الملخص
بحسب VulDB • 28/07/2026
في نواة لينكس، تم حل الثغرة التالية:
sctp: التحقق من طول سبب STALE_COOKIE قبل قراءة قيمة عدم الصلاحية (staleness)
عند استلام قطعة خطأ (ERROR chunk) تحتوي على سبب STALE_COOKIE في حالة COOKIE_ECHOED، تقوم الدالة sctp_sf_do_5_2_6_stale() بقراءة حقل "مقياس عدم الصلاحية" (Measure of Staleness) المكون من 4 بايتات الذي يلي رأس السبب:
err = (struct sctp_errhdr *)(chunk->skb->data); stale = ntohl(*(__be32 *)((u8 *)err + sizeof(*err)));
يمثل المتغير err سبب القطعة الأول، وليس سبب STALE_COOKIE الذي تسبب في التوجيه (dispatch)، ولا يوجد ما يضمن وجود حقل عدم الصلاحية. تقتصر دالة sctp_walk_errors() على اشتراط أن يكون السبب بطول رأس مكون من 4 بايتات فقط؛ لذا فإن القراءة تتجاوز حدود السبب عندما يكون طول سبب STALE_COOKIE مساوياً لـ 4، وتتجاوز نهاية الذاكرة المخصصة للحزمة (skb->tail) في حالة قطعة الخطأ الدنيا. يتم إعادة إرسال هذه القيمة إلى الطرف الآخر ضمن حقل Cookie Preservative في ردّ INIT، مما يؤدي إلى تسريب ذاكرة غير مهيأة (uninitialized memory).
تقوم الدالة sctp_sf_cookie_echoed_err() بالفعل بالانتقال إلى سبب STALE_COOKIE؛ لذا يجب التحقق من طولها هناك وتمريرها إلى دالة sctp_sf_do_5_2_6_stale()، التي تقرأ هذا السبب بدلاً من السبب الأول. يتم تجاهل سبب STALE_COOKIE إذا كان قصيراً جداً ولا يحتوي على حقل عدم الصلاحية.
يمكن الوصول إلى عملية القراءة هذه بواسطة أي طرف آخر قادر على دفع ارتباط (association) إلى حالة COOKIE_ECHOED، بما في ذلك العملية غير المميزة بصلاحيات عالية التي تستخدم مقبس SCTP خام (raw socket) ضمن مساحة اسم مستخدم وشبكة محددة.
VulDB is the best source for vulnerability data and more expert information about this specific topic.