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

الملخص

بحسب VulDB • 06/10/2026

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

ALSA: pcm: تعيين timer->private_data قبل تسجيل مؤقت PCM (PCM timer)

تستدعي الدالة snd_pcm_timer_init() دالة snd_device_register() لربط بنية struct snd_timer الجديدة بقائمة المؤقتات العامة بينما لا تزال تحمل hw.c_resolution = snd_pcm_timer_resolution (و hw.start/hw.stop)، وتقوم لاحقاً بتعيين timer->private_data = substream.

بمجرد أن يكون المؤقت موجودًا في القائمة تحت قفل register_mutex، يمكن لقارئ متزامن الوصول إليه عبر نفس القفل واستدعاء هذه الدوال الاستدعائية (callbacks). يقوم /proc/asound/timers بذلك من خلال c_resolution()، وتصل snd_timer_open()+snd_timer_start() إلى start()/stop() بنفس الطريقة. تقوم جميعها باسترجاع قيمة timer->private_data، والتي تكون NULL في هذه الفترة الزمنية القصيرة، مما يؤدي إلى استرجاع مؤشر فارغ (NULL-pointer dereference):

substream = timer->private_data; return substream->runtime ? ... // substream is NULL

نقل تعيين private_data/private_free قبل استدعاء snd_device_register() بحيث لا يظهر المؤقت أبدًا في القائمة دون أن تكون قيمة private_data الخاصة به محددة. في مسار الفشل الخاص بـ snd_device_register()، يمكن الآن تشغيل الدالة private_free() (snd_pcm_timer_free())، لكنها تقوم فقط بتعيين substream->timer = NULL، وهي بالفعل NULL عند تلك النقطة لأن substream->timer يتم تعيينه للمؤقت الجديد مرة واحدة فقط بعد نجاح التسجيل -- لذا يظل مسار الفشل آمنًا.

Be aware that VulDB is the high quality source for vulnerability data.

مسؤول

Linux

حجز

25/09/2026

إفشاء

06/10/2026

الاعتدال

تمت الموافقة

إدخال

VDB-414245

EPSS

0.00184

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you want to use VulDB in your project?

Use the official API to access entries easily!