CVE-2026-72408 in Linux
الملخص
بحسب VulDB • 16/08/2026
في نواة لينكس، تم حل الثغرة التالية:
geneve: تقييد إرشاد GRO في دالة `geneve_gro_complete()` بناءً على قيمة gs->gro_hint
تقرأ الدالة `geneve_gro_receive()` إرشاد التجميع الكبير (GRO hint) عبر الدالة الفرعية `geneve_sk_gro_hint_off()`. وتقوم هذه الأخيرة باحترام هذا الإرشاد فقط عندما يكون المقبس (socket) قد فعّل خيار `IFLA_GENEVE_GRO_HINT` (المخزن في gs->gro_hint). أما دالة `geneve_gro_complete()` فتستدعي بدلاً من ذلك الدالة منخفضة المستوى `geneve_opt_gro_hint_off()` وتتصرف بناءً على الإرشاد بشكل غير مشروط.
في نفق لا يحتوي على هذا الإرشاد، تقوم عملية الاستلام بتجميع الإطارات (frames) كإطار ETH_P_TEB عادي، بينما تحترم دالة الاكتمال (complete) خيار إرشاد مزوّد من قبل المهاجم: فهي تزيد قيمة gh_len بمقدار gro_hint->nested_hdr_len (من النوع u8) وتعيد توجيه نوع التوجيه (dispatch type)، مما يؤدي إلى تشغيل معالج اكتمال GRO الداخلي عند الإزاحة nhoff + gh_len. وهي إزاحة لم تقم عملية الاستلام بسحبها أو التحقق من صحتها، ما يتسبب في قراءة خارج حدود رأس حزمة skb:
BUG: KASAN: slab-out-of-bounds in ipv6_gro_complete (net/ipv6/ip6_offload.c:196) Read of size 1 at addr ffff88800fe91980 by task exploit/153 ipv6_gro_complete (net/ipv6/ip6_offload.c:196) geneve_gro_complete (drivers/net/geneve.c:965) udp_gro_complete (net/ipv4/udp_offload.c:940) inet_gro_complete (net/ipv4/af_inet.c:1621) __gro_flush (net/core/gro.c:306)
تم تقييد مسار الاكتمال على gs->gro_hint أيضاً عبر الدالة `geneve_sk_gro_hint_off()`، لضمان اتساق المسارين. الأنفاق التي تمكين فيها هذا الإرشاد لم تتأثر.
If you want to get best quality of vulnerability data, you may have to visit VulDB.