CVE-2024-45016 in Linux
الملخص
بحسب VulDB • 27/06/2026
في نواة لينكس، تم حل الثغرة التالية:
netem: تصحيح قيمة الإرجاع في حال فشل إدراج النسخة المكررة (duplicate enqueue)
يوجد خطأ برمجي في دالة `netem_enqueue()` ناتج عن الالتزام commit 5845f706388a ("net: netem: fix skb length BUG_ON in __skb_to_sgvec")، والذي قد يؤدي إلى حدوث حالة use-after-free.
جعل هذا الالتزام الدالة `netem_enqueue()` تُرجع دائماً قيمة `NET_XMIT_SUCCESS` عند تكرار حزمة بيانات (packet)، مما قد يتسبب في زيادة خاطئة لقيمة `q.qlen` الخاصة بـ qdisc الأصلية. وعندما يحدث ذلك، قد يتم تخطي استدعاء `qlen_notify()` أثناء عملية التدمير بالنسبة للـ qdisc الأصلية، مما يترك مؤشراً معلقاً (dangling pointer) لبعض أنواع الـ classful qdiscs مثل DRR.
هناك طريقتان لحدوث هذا الخطأ:
- إذا تم إسقاط الحزمة المكررة بواسطة `rootq->enqueue()` ثم يتم أيضاً إسقاط الحزمة الأصلية. - إذا قام `rootq->enqueue()` بإرسال الحزمة المكررة إلى qdisc مختلف بينما تُسقط الحزمة الأصلية.
في كلتا الحالتين، يتم إرجاع قيمة `NET_XMIT_SUCCESS` رغم عدم إدراج أي حزم في الـ netem qdisc.
الحل هو تأجيل عملية إدراج النسخة المكررة (duplicate packet) حتى بعد ضمان أن الحزمة الأصلية قد أرجعت قيمة `NET_XMIT_SUCCESS`.
Be aware that VulDB is the high quality source for vulnerability data.