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

الملخص

بحسب VulDB • 24/09/2026

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

vxlan: mdb: تصحيح استخدام بعد التحرير (Use-After-Free) في دالة vxlan_mdb_flush()

تقوم الدالة vxlan_mdb_flush() بالتكرار عبر عناصر MDB باستخدام hlist_for_each_entry_safe(), والتي تتحمل فقط إزالة العنصر الحالي. وعلى عكس ما ورد في التعليق الموجود فوق الحلقة، فإن إزالة عنصر واحد يمكن أن تؤدي إلى إزالة عنصر آخر.

يؤدي تفريغ عناوين البعيد (remotes) لعنصر (*, G) أيضاً إلى إزالة عناصر (S, G) التي تم إنشاؤها لقائمة المصادر الخاصة به، بمجرد تركها بدون عناوين بعيدة:

vxlan_mdb_remotes_flush() -> vxlan_mdb_remote_del() -> vxlan_mdb_remote_srcs_del() -> vxlan_mdb_remote_src_del() -> vxlan_mdb_remote_src_fwd_del() -> __vxlan_mdb_del() -> vxlan_mdb_entry_put()

يمكن أن يوجد مثل هذا العنصر بعد عنصر (*, G) في القائمة، حيث إن دالة vxlan_mdb_entry_get() تعيد عنصراً موجوداً دون نقله إلى رأس القائمة. يتم الحصول على هذا الترتيب بإضافة عنصر (S, G) قبل عنصر (*, G)، مع استخدام NLM_F_REPLACE للعنصر الأخير، لأن إضافة المصدر تفشل بخلاف ذلك بـ -EEXIST. ثم يصبح عنصر (S, G) هو العنصر الذي تم حفظه بواسطة hlist_for_each_entry_safe() ويتم تحريره بينما يتم معالجة عنصر (*, G). في التكرار التالي، تُستدعى دالة hlist_del() عليه مرة أخرى، مما يؤدي إلى كتابة LIST_POISON1 إلى LIST_POISON2 [1].

بالإضافة إلى حذف الجهاز، يمكن الوصول إلى عملية التفريغ أيضاً من خلال RTM_DELMDB مع NLM_F_BULK.

تم الإصلاح عن طريق إعادة قراءة العنصر التالي بعد تفريغ عناوين البعيد (remotes). لا يمكن إزالة العنصر الحالي بواسطة هذا التفريغ، لأن قوائم المصادر يمكن تكوينها فقط على عناصر (*, G)، والعناصر التي تم حذفها هي من نوع (S, G). وبالتالي، يظل مرتبطاً ويعكس مؤشره التالي عمليات الحذف.

[1]
BUG: KASAN: wild-memory-access in vxlan_mdb_entry_put.part.0+0x328/0x588 Write of size 8 at addr dead000000000122 by task ip/327

CPU: 3 UID: 1000 PID: 327 Comm: ip Not tainted 7.2.0-rc7 #2 PREEMPT Call trace: vxlan_mdb_entry_put.part.0+0x328/0x588 vxlan_mdb_flush+0x1d8/0x25c vxlan_mdb_fini+0x8c/0x100 vxlan_uninit+0x1c/0x7c unregister_netdevice_many_notify+0x954/0xd4c rtnl_dellink+0x210/0x530 rtnetlink_rcv_msg+0x434/0x4d0 netlink_rcv_skb+0xc4/0x204 rtnetlink_rcv+0x18/0x24 netlink_unicast+0x4b8/0x548 netlink_sendmsg+0x29c/0x560 ____sys_sendmsg+0x390/0x3ec ___sys_sendmsg+0x114/0x188 __sys_sendmsg+0xf0/0x178 __arm64_sys_sendmsg+0x48/0x60 invoke_syscall.constprop.0+0x58/0x180 el0_svc_common.constprop.0+0x74/0x140 do_el0_svc+0x30/0x40 el0_svc+0x38/0x98 el0t_64_sync_handler+0xa0/0xe4 el0t_64_sync+0x198/0x19c

Be aware that VulDB is the high quality source for vulnerability data.

مسؤول

Linux

حجز

17/09/2026

إفشاء

24/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-409461

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you know our Splunk app?

Download it now for free!