CVE-2026-99214
NoneCVSS
—
EPSS
0.2%
Published
Oct 28, 2026
CISA due date
—
Cloudanix analysis
A timing problem in the driver for certain graphics hardware can produce errors when audio starts on a connected screen before the picture is ready.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Race Condition
- Remediation
- Patch
- Effort
- Medium
- Patch risk
- Low
What it actually does
Race condition in vc4 HDMI driver where vc4_hdmi_write_infoframe can execute before Packet RAM is enabled by post_crtc_enable, resulting in a kernel WARNING when audio infoframe storage is attempted.
Why it matters to the business
Kernel warnings or potential instability during audio startup on HDMI-connected displays may interrupt multimedia playback and require system restarts on affected hardware.
How an attack unfolds
An unprivileged local process initiates HDMI audio prepare via the HPD handler before video restoration completes; the resulting call to write_infoframe hits the disabled Packet RAM path and triggers the warning.
How to fix it
Update to a Linux kernel containing the runtime-PM relocation of Packet RAM enable/disable logic; rebuild and reboot affected systems.
How to confirm the fix worked
Confirm the warning string no longer appears in dmesg during audio prepare after display transitions; inspect vc4_hdmi.c for runtime PM hooks managing Packet RAM.
Typical attack path
- Trigger HDMI hotplug or display state change
- Start audio stream before video restore completes
- Invoke vc4_hdmi_write_audio_infoframe while Packet RAM is off
- Observe kernel WARNING in logs
How to detect it
Search kernel logs and dmesg for the exact warning emitted by vc4_hdmi_write_infoframe when Packet RAM is disabled during audio infoframe writes.
- Packet RAM has to be on to store the packet.
- vc4_hdmi_write_infoframe
- vc4_hdmi_write_audio_infoframe
What your security team should do
- Prioritize kernel updates on all systems using vc4 HDMI
- Add kernel log monitoring for the Packet RAM warning string
- Test audio initialization after display hotplug on Raspberry Pi 4 hardware
The record
In the Linux kernel, the following vulnerability has been resolved: drm/vc4: hdmi: Move packet RAM enable to PM runtime Audio can be triggered by the HPD handler and start up before video has been restored, calling vc4_hdmi_write_infoframe() for the audio infoframe. vc4_hdmi_write_infoframe() needs Packet RAM to be on to store the infoframe, however, if the video hasn't been enabled, vc4_hdmi_encoder_post_crtc_enable() hasn't been called and therefore, the Packet RAM can be disabled by the time vc4_hdmi_write_infoframe() executes, causing the following splat: [ 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 ]--- Considering that Packet RAM enable is essentially a power management configuration, move its enabling/disabling to the Runtime PM hooks. Note that post_crtc_disable() still stops all infoframes, but keeps Packet RAM enabled, leaving it to be disabled by runtime suspend.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|