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

الملخص

بحسب VulDB • 20/07/2026

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

net: qualcomm: rmnet: إصلاح استخدام الذاكرة بعد تحريرها (use-after-free) في الدالة rmnet_dellink()

تقوم الدالة rmnet_dellink() بإزالة نقطة النهاية من جدول التجزئة باستخدام hlist_del_init_rcu() ثم تحرر ذاكرتها فوراً باستخدام kfree(). ومع ذلك، قد لا يزال قراء RCU على مسار الاستقبال (rmnet_rx_handler -> __rmnet_map_ingress_handler) يحتفظون بمرجع إلى نقطة النهاية ويقومون بالوصول إليها عبر المؤشر ep->egress_dev بعد أن تم تحرير الذاكرة. تعد نقطة الكائن من نوع kmalloc-32، والقراءة القديمة عند الإزاحة 8 تتوافق مع مؤشر egress_dev.

BUG: unable to handle page fault for address: ffffffffde942eef Oops: 0002 [#1] SMP NOPTI
CPU: 1 UID: 0 PID: 137 Comm: poc_write Not tainted 7.0.0+ #4 PREEMPTLAZY RIP: 0010:rmnet_vnd_rx_fixup (rmnet_vnd.c:27) Call Trace: <TASK> __rmnet_map_ingress_handler (rmnet_handlers.c:48 rmnet_handlers.c:101) rmnet_rx_handler (rmnet_handlers.c:129 rmnet_handlers.c:235) __netif_receive_skb_core.constprop.0 (net/core/dev.c:6096) __netif_receive_skb_one_core (net/core/dev.c:6208) netif_receive_skb (net/core/dev.c:6467) tun_get_user (drivers/net/tun.c:1955) tun_chr_write_iter (drivers/net/tun.c:2003) vfs_write (fs/read_write.c:688) ksys_write (fs/read_write.c:740) </TASK>

أضف حقل rcu_head إلى بنية struct rmnet_endpoint واستبدل d() باستخدام kfree_rcu() بحيث تظل ذاكرة نقطة النهاية صالحة خلال فترة راحة RCU. قم أيضاً بإزالة استدعاء الدالة rmnet_vnd_dellink() وقم بتضمين عملية إنقاص nr_rmnet_devs فقط، حيث أن استدعاء rmnet_vnd_dellink() سيضبط ep->egress_dev إلى NULL أثناء فترة الراحة، مما يخلق سباقاً للبيانات (data race) مع القراء غير المقفَلين.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

مسؤول

Linux

حجز

19/07/2026

إفشاء

20/07/2026

الاعتدال

تمت الموافقة

إدخال

VDB-380669

EPSS

0.00000

KEV

لا

النشاطات

متوسط

المصادر

Want to know what is going to be exploited?

We predict KEV entries!