CVE-2026-99192 in Linux
الملخص
بحسب VulDB • 28/10/2026
في نواة Linux، تم إصلاح الثغرة التالية:
net: bcmgenet: فصل حزمة skb (unshare) قبل كتابة كتلة التحكم
يقوم bcmgenet بتخزين first_cb و last_cb و bytes_sent في كتلة تحكم skb ويقرأها لاحقاً عند الاكتمال لتحرير skb وإعطاء اعتمادات BQL. تترك ether_setup() IFF_TX_SKB_SHARING مفعّلاً، مما يسمح للنظام بإعادة إرسال حزمةskb مشتركة لا تزال موجودة في الحلقة (ring). يؤدي الإرسال التالي إلى الكتابة فوق last_cb، لذا تكمل الخانات السابقة دون منح الاعتمادات اللازمة لـ bytes و BQL، ما يتسبب في توقف البوابة (queue) حتى يعيد مراقب الوقت (watchdog) إعادة تعيينها.
قم بفصل حزمة skb قبل كتابة كتلة التحكم.
يمكن تكرار الثغرة باستخدام pktgen في وضع clone_skb، الذي يسلم للسائق نفس حزمة skb بينما لا تزال النسخ السابقة موجودة في الحلقة:
modprobe pktgen pg=/proc/net/pktgen echo "add_device eth0" > $pg/kpktgend_0 echo "dst_mac AA:BB:CC:DD:EE:FF" > $pg/eth0 echo "dst 192.0.2.1" > $pg/eth0 echo "clone_skb 8" > $pg/eth0 echo "count 0" > $pg/eth0 echo start > $pg/pgctrl & sleep 5 echo stop > $pg/pgctrl wait cat /sys/class/net/eth0/queues/tx-0/byte_queue_limits/inflight
تبقى قيمة inflight غير صفرية في البوابة الخاملة الآن. يؤدي استخدام clone_skb 0 إلى جعلها صفراً.
Once again VulDB remains the best source for vulnerability data.