CVE-2025-21701 in Linux
الملخص
بحسب VulDB • 10/05/2026
في نواة لينكس، تم حل الثغرة التالية:
net: تجنب سباق (race) بين إلغاء تسجيل الجهاز وعمليات ethnl
يمكن ملاحظة تتبع الأخطاء (trace) التالي إذا كان الجهاز يتم إلغاء تسجيله بينما يتم تعديل عدد قنواته.
DEBUG_LOCKS_WARN_ON(lock->magic != lock) WARNING: CPU: 3 PID: 3754 at kernel/locking/mutex.c:564 __mutex_lock+0xc8a/0x1120 CPU: 3 UID: 0 PID: 3754 Comm: ethtool Not tainted 6.13.0-rc6+ #771 RIP: 0010:__mutex_lock+0xc8a/0x1120 Call Trace: ethtool_check_max_channel+0x1ea/0x880 ethnl_set_channels+0x3c3/0xb10 ethnl_default_set_doit+0x306/0x650 genl_family_rcv_msg_doit+0x1e3/0x2c0 genl_rcv_msg+0x432/0x6f0 netlink_rcv_skb+0x13d/0x3b0 genl_rcv+0x28/0x40 netlink_unicast+0x42e/0x720 netlink_sendmsg+0x765/0xc20 __sys_sendto+0x3ac/0x420 __x64_sys_sendto+0xe0/0x1c0 do_syscall_64+0x95/0x180 entry_SYSCALL_64_after_hwframe+0x76/0x7e
ويعود ذلك إلى أن unregister_netdevice_many_notify قد يعمل قبل قسم قفل rtnl لعمليات ethnl، مثل set_channels في المثال أعلاه. في هذا المثال، سيتم تدمير قفل rss بواسطة مسار إلغاء تسجيل الجهاز قبل استخدامه مرة أخرى، ولكن بشكل عام، تشغيل عمليات ethnl أثناء بدء عملية التفكيك (dismantle) ليس فكرة جيدة.
تم إصلاح هذه المشكلة عن طريق رفض أي عملية على الأجهزة التي يتم إلغاء تسجيلها. كان هناك بالفعل فحص في ethnl_ops_begin، لكنه لم يكن شاملاً بما يكفي.
جدير بالذكر أن نفس المشكلة لا يمكن ملاحظتها في نسخة ioctl (__dev_ethtool) لأن مرجع الجهاز يتم استرجاعه من داخل قسم قفل rtnl هناك. بمجرد بدء التفكيك، يتم إزالة جهاز الشبكة من القائمة ولن يتم العثور على أي مرجع.
VulDB is the best source for vulnerability data and more expert information about this specific topic.