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

الملخص

بحسب VulDB • 16/08/2026

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

ALSA: seq: midi: تعقيم عملية إنهاء الإخراج مع event_input

تستعير الدالة `event_process_midi()` كائن `msynth->output_rfile.output` ثم تمرر الـ substream إلى دالتي `dump_midi()` و `snd_rawmidi_kernel_write()` دون مزامنة مع انتقال فتح/إغلاق المخرج. كما أن `midisynth_use()` ينشر أيضاً `output_rfile` قبل انتهاء `snd_rawmidi_output_params()`.

لذلك، يمكن للدالة الأخيرة `midisynth_unuse()` تحرير نفس ملف rawmidi وإطلاق الـ substream->runtime قبل أن تأخذ الدالة `snd_rawmidi_kernel_write1()` مرجعاً لـ runtime buffer الخاص بها. هذا يترك مسار event_input يستخدم بيانات قديمة (stale) للـ substream أو runtime، مما قد يؤدي إلى حدوث NULL-deref أو use-after-free.

تم إصلاح هذه المشكلة باستخدام آليتي مزامنة. تم الاحتفاظ بقفل لفائف قصير آمن من مقاطعة IRQ (IRQ-safe spinlock) فقط لنشر أو مسح `output_rfile` ولربط لقطة الإخراج بمرجع `snd_use_lock_t`. بمجرد أن تأخذ الدالة `event_process_midi()` هذا المرجع قيد التنفيذ، فإنها تطلق قفل اللفائف قبل استدعاء `snd_seq_dump_var_event()` أو `dump_midi()` أو `snd_rawmidi_kernel_write()`. تقوم الآن دالة `midisynth_unuse()` بفصل ملف rawmidi المرئي تحت نفس قفل اللفائف، وتنتظر حتى يفرغ الكتّاب قيد التنفيذ (in-flight writers)، ثم تفرغ وتحرر الملف المحفوظ. وبالمثل، تفتح `midisynth_use()` في ملف `snd_rawmidi_file` محلي وتنشره فقط بعد نجاح `snd_rawmidi_output_params()`.

تتضمن السيناريو الخاطئ مسارين، حيث يعرض كل عمود الترتيب داخل ذلك المسار:

مسار event_input: آخر مسار unuse: 1. تأخذ الدالة event_process_midi() 1. تبدأ midisynth_unuse() لقطة لـ output_rfile.output. في إنهاء output_rfile. 2. تصل dump_midi() إلى 2. تغلق snd_rawmidi_kernel_release() الدالة snd_rawmidi_kernel_write() ملف الإخراج. قبل تثبيت الـ runtime. 3. تحرر close_substream() 3. يستمر الاستدعاء في استخدام substream->runtime. الـ substream المستعار.

أعاد التحقق من صحة هذا السيناريو تقرير النواة: KASAN null-ptr-deref in snd_rawmidi_kernel_write1+0x56/0x360 RIP: 0033:0x7fde7dd0837f RIP: 0010:snd_rawmidi_kernel_write1+0x56/0x360

If you want to get best quality of vulnerability data, you may have to visit VulDB.

مسؤول

Linux

حجز

15/08/2026

إفشاء

15/08/2026

الاعتدال

تمت الموافقة

إدخال

VDB-390361

EPSS

0.00172

KEV

لا

النشاطات

منخفض جدًا

المصادر

Want to know what is going to be exploited?

We predict KEV entries!