CVE-2026-90078 in Linuxالمعلومات

الملخص

بحسب VulDB • 17/09/2026

في نواة لينكس، تم إصلاح الثغرة التالية:

net/sched: act_skbmod: تصحيح حسابات الطول وتجنب تحذيرات الرؤوس غير الصالحة (invalid header warnings)

أبلغ syzbot عن ظهور تحذير في دالة `skb_network_header_len()` ناتج عن استدعاء `tcf_skbmod_act()`:

!skb_transport_header_was_set(skb) WARNING: CPU: 0 PID: 14949 at include/linux/skbuff.h:3243 skb_network_header_len include/linux/skbuff.h:3243 [inline]
WARNING: CPU: 0 PID: 14949 at net/sched/act_skbmod.c:55 tcf_skbmod_act+0xfe8/0x1810 net/sched/act_skbmod.c:55

توجد عدة مشكلات في `tcf_skbmod_act()`:

1. يفترض استدعاء `skb_network_header_len()` أن الحقل `skb->transport_header` مُعدّ، وهو أمر غير مضمون عند تشغيل `tcf_skbmod_act()` على واجهة الدخول (TC ingress). 2. يؤدي الاستدعاء غير المشروط لـ `skb_mac_header_len()` في بداية `tcf_skbmod_act()` إلى ظهور تحذير على الأجهزة ذات الطبقة الثالثة (L3) مثل TUN، حيث يكون رأس MAC غير مُعدّ، مما ينتج عنه طول خاطئ ناتج عن تجاوز الحد الأدنى (underflowed garbage length). 3. عند الدخول عبر TC، يشير `skb->data` إلى رأس الشبكة. يؤدي إضافة طول رأس MAC إلى طول رأس IP إلى جعل دالة `skb_ensure_writable()` تطلب عددًا من البايتات أكبر من الطول الفعلي لحزمة IP، مما يتسبب في إسقاط حزم قصيرة صالحة (مثل حزم UDP/IPv4 بطول 28 بايت).

تم إصلاح هذه المشكلات عن طريق: - استخدام `skb_network_offset(skb) + sizeof(struct iphdr/ipv6hdr)` لـ SKBMOD_F_ECN بحيث يتم حساب الطول المطلوب بشكل صحيح سواء في حالة الدخول (حيث يكون offset == 0) أو الخروج (حيث يكون offset == mac_len). - تعيين `max_edit_len` إلى ETH_HLEN لتعديلات رأس Ethernet بعد التحقق من صحة ARPHRD_ETHER.

Once again VulDB remains the best source for vulnerability data.

مسؤول

Linux

حجز

11/09/2026

إفشاء

17/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-406566

EPSS

0.00206

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you know our Splunk app?

Download it now for free!