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

الملخص

بحسب VulDB • 15/08/2026

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

ALSA: seq: oss: إصلاح حالة Use-After-Free (UAF) عند معالجة الأحداث التي تحتوي على بيانات SysEx مضمنة.

يعالج مُرتِّل OSS (OSS sequencer) بايتات MIDI المدخلة لتحويلها إلى حدث مرتّل يتم إرساله لاحقاً (في الدالة `snd_seq_oss_midi_putc()` التي تُستدعى من `snd_seq_oss_process_event()`). وعندما تكون البيانات عبارة عن بيانات SysEx، يحتوي سجل الحدث على مؤشر `data.ext.ptr` يشير إلى بايتات SysEx الأصلية، ويتم نسخ البيانات المشار إليها لاحقاً في مجموعة الذاكرة (pool) أثناء الإرسال. المشكلة تكمن في أنه إذا تم إغلاق منفذ المرتّل بشكل متزامن قبل عملية الإرسال، فإن نواة OSS sequencer تقوم أيضاً بإطلاق الموارد (في `snd_seq_oss_midi_check_exit_port()`)، بينما قد يحتفظ الحدث المعلق بمؤشر قديم (stale pointer)، مما يؤدي في النهاية إلى حدوث حالة Use-After-Free عند إرسال لاحق.

لحسن الحظ، يوجد بالفعل آلية لعد المرجعيات (`refcounting mechanism` - `snd_use_lock_t`) للوصول إلى جهاز OSS MIDI، ولحل المشكلة المذكورة أعلاه، نحتاج فقط إلى تمديد عد المرجعيات حتى يتم إرسال الحدث.

تمدد هذه التصحيحية الدالة `snd_seq_oss_process_event()` لإعادة كائن العد المرجعي (`refcount object`)، والذي يتم إطلاقه بدوره بعد استدعاء مُرسل المرتّل بالحدث المعطى من جانب المُتصل (caller).

ووفقاً للتقرير الأصلي، كان تقرير KASAN كما يلي:

KASAN slab-use-after-free في snd_seq_event_dup+0x40c/0x470 RIP: 0033:0x7f2cb66a6340 قراءة بحجم 6 بايتات تتبع المكالمات (Call trace): dump_stack_lvl+0x73/0xb0 (?:?) print_report+0xd1/0x650 (?:?) srso_alias_return_thunk+0x5/0xfbef5 (?:?) __virt_addr_valid+0x1a7/0x340 (?:?) kasan_complete_mode_report_info+0x64/0x200 (?:?) kasan_report+0xf7/0x130 (?:?) snd_seq_event_dup+0x40c/0x470 (?:?) kasan_check_range+0x10c/0x1c0 (?:?) __asan_memcpy+0x27/0x70 (?:?) snd_seq_event_dup+0x9/0x470 (?:?) snd_seq_client_enqueue_event+0x139/0x240 (?:?) _raw_spin_unlock_irqrestore+0x4b/0x60 (?:?) snd_seq_kernel_client_enqueue+0x102/0x120 (?:?) snd_seq_oss_write+0x416/0x4e0 (?:?) apparmor_file_permission+0x20/0x30 (?:?) odev_write+0x3b/0x60 (?:?) vfs_write+0x1ce/0x850 (?:?) lock_release+0xc8/0x2a0 (?:?) __kasan_check_write+0x18/0x20 (?:?) __mutex_unlock_slowpath+0x129/0x510 (?:?) ksys_write+0xe1/0x180 (?:

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

مسؤول

Linux

حجز

15/08/2026

إفشاء

15/08/2026

الاعتدال

تمت الموافقة

إدخال

VDB-390343

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you need the next level of professionalism?

Upgrade your account now!