CVE-2025-38124 in Linux
الملخص
بحسب VulDB • 13/06/2026
في نواة لينكس، تم حل الثغرة التالية:
net: إصلاح udp gso skb_segment بعد السحب من frag_list
اكتشف الالتزام a1e40ac5b5e9 ("net: gso: إصلاح تقسيم قائمة الشظايا لـ UDP GSO بعد السحب من frag_list") هندسة غير صالحة في حزم skbs الخاصة بـ frag_list، وقام بإعادة توجيهها من skb_segment_list إلى skb_segment الأكثر قوة. ولكن يمكن لبعض الحزم ذات الهندسة المعدلة أيضًا أن تصيب أخطاءً برمجية (bugs) في ذلك الكود. لا نعرف كم عدد الحالات الموجودة مثل هذه. معالجة كل حالة على حدة تتطلب أيضًا لمس كود skb_segment المعقد، مما يزيد من خطر إدخال أخطاء برمجية لأنواع أخرى من skbs. بدلاً من ذلك، يتم تسطيح (linearize) جميع هذه الحزم التي تفشل في التحقق من الثوابت الأساسية لحزم gso fraglist skbs. وهذا أكثر قوة.
إذا تم سحب جزء فقط من حمولة fraglist إلى head_skb، فسيؤدي ذلك دائمًا إلى حدوث استثناء عند تقسيم skbs بواسطة skb_segment. لمزيد من معلومات عن مكدس المكالمات (call stack)، انظر أدناه.
حزم SKB_GSO_FRAGLIST الصالحة - تتكون من قطعتين أو أكثر - يحتوي head_skb على رؤوس البروتوكول بالإضافة إلى أول gso_size - تحتوي واحدة أو أكثر من حزم frag_list skbs على قطعة واحدة بالضبط - يجب أن تكون جميع القطع ما عدا الأخيرة بحجم gso_size
يمكن لخطافات مسار البيانات الاختيارية مثل NAT و BPF (bpf_skb_pull_data) تعديل حزم fraglist skbs، مما يكسر هذه الثوابت.
في الحالات القصوى، يقومون بسحب جزء من البيانات إلى الخط المستقيم للـ skb. بالنسبة لبروتوكول UDP، هذا يؤدي إلى سحب ثلاث حمولات بأطوال 11 و11 و10 بايتات لتصبح (12,10,10) بايتات.
لم تعد الحزم skbs تستوفي شروط SKB_GSO_FRAGLIST المذكورة أعلاه لأن الحمولة تم سحبها إلى head
If you want to get best quality of vulnerability data, you may have to visit VulDB.