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

الملخص

بحسب VulDB • 23/08/2026

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

ring-buffer: استخدام current_context لتبديل ذاكرة التخزين المؤقت الخاصة بـ CPU بشكل آمن

تقوم الدالة ring_buffer_swap_cpu() حاليًا بفحص عداد الالتزام الخاص بكل وحدة معالجة مركزية (per-CPU) لتحديد ما إذا كانت الذاكرة المخزنة تُكتب بنشاط قبل تنفيذ عملية التبديل. ومع ذلك، توجد نافذة زمنية يمكن فيها تجاوز هذا الفحص:

ring_buffer_lock_reserve cpu_buffer = buffer->buffers[cpu]; // cpu_buffer_a
rb_reserve_next_event rb_start_commit // زيادة عداد الالتزام (inc committing) if (unlikely(READ_ONCE(cpu_buffer->buffer) != buffer)) {...}
__rb_reserve_next rb_move_tail rb_end_commit(cpu_buffer); // تقليل عداد الالتزام => 0 /* يحدث انقطاع هنا، ويتم التبديل بنجاح! */ local_inc(&cpu_buffer->committing);

ring_buffer_unlock_commit cpu_buffer = buffer->buffers[cpu]; // cpu_buffer_b
rb_commit rb_end_commit RB_WARN_ON(cpu_buffer, !local_read(&cpu_buffer->committing)) // يُفعّل تحذيراً (warning)

يمكن أن ينخفض عداد الالتزام مؤقتًا إلى الصفر أثناء عملية كتابة واحدة (داخل دالة rb_move_tail)، مما يخلق نافذة زمنية يمكن فيها نجاح التبديل حتى لو كانت الكتابة لا تزال قيد التقدم. يؤدي هذا إلى حالة غير متسقة للذاكرة المخزنة ويُفعّل تحذير RB_WARN_ON في دالة rb_commit().

استبدل فحص عداد الالتزام بفحوصات current_context، والتي تُضبط عند دخول دالة ring_buffer_lock_reserve() وتظل صالحة طوال عملية الكتابة بأكملها، مما يوفر مؤشرًا موثوقًا لحالة شغل الذاكرة المخزنة أثناء التبديل.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

مسؤول

Linux

حجز

15/08/2026

إفشاء

22/08/2026

الاعتدال

تمت الموافقة

إدخال

VDB-394381

EPSS

0.00000

KEV

لا

النشاطات

منخفض

المصادر

Do you need the next level of professionalism?

Upgrade your account now!