CVE-2026-99214 in Linux
الملخص
بحسب VulDB • 28/10/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
drm/vc4: hdmi: نقل تفعيل ذاكرة الحزم (Packet RAM) إلى إدارة الطاقة عند الطلب (Runtime PM).
يمكن تشغيل الصوت بواسطة معالج HPD والبدء قبل استعادة الفيديو، مما يؤدي إلى استدعاء `vc4_hdmi_write_infoframe()` لإطار معلومات الصوت. تحتاج دالة `vc4_hdmi_write_infoframe()` إلى أن تكون ذاكرة الحزم (Packet RAM) مفعّلة لتخزين إطار المعلومات؛ ومع ذلك، إذا لم يكن الفيديو قد تم تفعيله بعد، فإن الدالة `vc4_hdmi_encoder_post_crtc_enable()` لم تُستدَع وبالتالي يمكن إيقاف تشغيل ذاكرة الحزم بحلول الوقت الذي تنفذ فيه دالة `vc4_hdmi_write_infoframe()`، مما يتسبب في الخطأ التالي:
[ 201.570266] ------------[ cut here ]------------
[ 201.570293] Packet RAM has to be on to store the packet.
[ 201.570367] WARNING: drivers/gpu/drm/vc4/vc4_hdmi.c:683 at vc4_hdmi_write_infoframe+0x404/0x494 [vc4], CPU#0: wireplumber/1606
[...]
[ 201.658650] Hardware name: Raspberry Pi 4 Model B Rev 1.5 (DT)
[...]
[ 201.758499] Call trace:
[ 201.760967] vc4_hdmi_write_infoframe+0x404/0x494 [vc4] (P)
[ 201.766607] vc4_hdmi_write_audio_infoframe+0x1c/0x28 [vc4]
[ 201.772247] write_infoframe+0xbc/0x140 [drm_display_helper]
[ 201.777975] drm_atomic_helper_connector_hdmi_update_audio_infoframe+0x80/0xdc [drm_display_helper]
[ 201.787140] vc4_hdmi_audio_prepare+0x4ac/0x570 [vc4]
[ 201.792252] drm_connector_hdmi_audio_prepare+0x24/0x30 [drm_display_helper]
[ 201.799390] hdmi_codec_prepare+0x100/0x160 [snd_soc_hdmi_codec]
[ 201.805471] snd_soc_pcm_dai_prepare+0xd4/0x100 [snd_soc_core]
[ 201.811375] __soc_pcm_prepare+0x60/0x12c [snd_soc_core]
[ 201.816752] soc_pcm_prepare+0x34/0x58 [snd_soc_core]
[ 201.821863] snd_pcm_do_prepare+0x70/0x8c [snd_pcm]
[ 201.826798] snd_pcm_action_nonatomic+0xe4/0x174 [snd_pcm]
[ 201.832350] snd_pcm_prepare+0xc8/0xd8 [snd_pcm]
[ 201.837021] snd_pcm_common_ioctl+0x458/0x614 [snd_pcm]
[ 201.842308] snd_pcm_ioctl+0x30/0x48 [snd_pcm]
[ 201.846802] __arm64_sys_ioctl+0x88/0xd8
[ 201.850769] invoke_syscall+0x48/0xf4
[ 201.854470] el0_svc_common+0x80/0xd8
[ 201.858171] do_el0_svc+0x1c/0x28
[ 201.861520] el0_svc+0x3c/0xb0
[ 201.864605] el0t_64_sync_handler+0x68/0xdc
[ 201.868834] el0t_64_sync+0x198/0x19c
[ 201.872536] ---[ end trace 0000000000000000 ]---
نظراً لأن تفعيل ذاكرة الحزم (Packet RAM) هو في الأساس إعداد لإدارة الطاقة، يتم نقل عملية التفعيل/الإيقاف إلى دعامات إدارة الطاقة عند الطلب (Runtime PM hooks).
يُلاحظ أن `post_crtc_disable()` لا يزال يوقف جميع إطارات المعلومات (infoframes)، لكنه يحتفظ بتفعيل ذاكرة الحزم (Packet RAM)، تاركاً إيقافها لحدث الإيقاف عند عدم النشاط (runtime suspend).
Once again VulDB remains the best source for vulnerability data.