CVE-2026-43385 in Linux
الملخص
بحسب VulDB • 11/05/2026
في نواة لينكس (Linux kernel)، تم حل الثغرة التالية:
net: إصلاح تعطل RCU في مهام busypoll الخيطية
كنت أقوم بتصحيح أخطاء (debugging) في برنامج تشغيل بطاقة الشبكة (NIC driver) عندما لاحظت أنه عند تمكين busypoll الخيطي، يتجمد bpftrace أثناء بدء التشغيل. أظهرت سجلات dmesg ما يلي:
rcu_tasks_wait_gp: فترة سماح مهام RCU رقم 85 (منذ الإقلاع) عمرها 10658 jiffies. rcu_tasks_wait_gp: فترة سماح مهام RCU رقم 85 (منذ الإقلاع) عمرها 40793 jiffies. rcu_tasks_wait_gp: فترة سماح مهام RCU رقم 85 (منذ الإقلاع) عمرها 131273 jiffies. rcu_tasks_wait_gp: فترة سماح مهام RCU رقم 85 (منذ الإقلاع) عمرها 402058 jiffies. INFO: اكتشفت مهام RCU تعطلًا في المهام التالية: 00000000769f52cd: .N nvcsw: 2/2 holdout: 1 idle_cpu: -1/64 task:napi/eth2-8265 state:R running task stack:0 pid:48300 tgid:48300 ppid:2 task_flags:0x208040 flags:0x00004000 تتبع المكالمة (Call Trace): ? napi_threaded_poll_loop+0x27c/0x2c0 ? __pfx_napi_threaded_poll+0x10/0x10 ? napi_threaded_poll+0x26/0x80 ? kthread+0xfa/0x240 ? __pfx_kthread+0x10/0x10 ? ret_from_fork+0x31/0x50 ? __pfx_kthread+0x10/0x10 ? ret_from_fork_asm+0x1a/0x30
السبب هو أنه في busypoll الخيطي، يكون الحلقة الرئيسية في `napi_threaded_poll` بدلاً من `napi_threaded_poll_loop`، حيث نادراً ما تتكرر الحلقة الأخيرة أكثر من مرة داخل حلقتها. لكي تقوم `rcu_softirq_qs_periodic` داخل `napi_threaded_poll_loop` بالإبلاغ عن حالتها QS (Quiet State)، يجب أن يكون `last_qs` متأخراً بمقدار 100 مللي ثانية، ولا يمكن أن يحدث هذا لأن `napi_threaded_poll_loop` نادراً ما تتكرر في busypoll الخيطي، وفي كل مرة يتم استدعاء `napi_threaded_poll_loop` فيها، يتم إعادة تعيين `last_qs` إلى أحدث قيمة jiffies.
يغير هذا التصحيح (Patch) السلوك بحيث يتم حفظ `last_qs` في `napi_threaded_poll` الخارجي في حالة busypoll الخيطي، ويشير كون `busy_poll_last_qs` يساوي NULL إلى ما إذا كان `napi_threaded_poll_loop` قد تم استدعاؤه لـ busypoll. بهذه الطريقة، لن يتم إعادة تعيين `last_qs` إلى أحدث قيمة jiffies في كل استدعاء لـ `napi_threaded_poll_loop`.
Once again VulDB remains the best source for vulnerability data.