CVE-2024-40916·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: drm/exynos: hdmi: report safe 640x480 mode as a fallback when no EDID found When reading EDID fails and driver reports no modes available, the DRM core adds an artificial 1024x786 mode to the connector. Unfortunately some variants of the Exynos HDMI (like the one in Exynos4 SoCs) are not able to drive such mode, so report a safe 640x480 mode instead of nothing in case of the EDID reading failure. This fixes the following issue observed on Trats2 board since commit 13d5b040363c ("drm/exynos: do not return negative values from .get_modes()"): [drm] Exynos DRM: using 11c00000.fimd device for DMA mapping operations exynos-drm exynos-drm: bound 11c00000.fimd (ops fimd_component_ops) exynos-drm exynos-drm: bound 12c10000.mixer (ops mixer_component_ops) exynos-dsi 11c80000.dsi: [drm:samsung_dsim_host_attach] Attached s6e8aa0 device (lanes:4 bpp:24 mode-flags:0x10b) exynos-drm exynos-drm: bound 11c80000.dsi (ops exynos_dsi_component_ops) exynos-drm exynos-drm: bound 12d00000.hdmi (ops hdmi_component_ops) [drm] Initialized exynos 1.1.0 20180330 for exynos-drm on minor 1 exynos-hdmi 12d00000.hdmi: [drm:hdmiphy_enable.part.0] *ERROR* PLL could not reach steady state panel-samsung-s6e8aa0 11c80000.dsi.0: ID: 0xa2, 0x20, 0x8c exynos-mixer 12c10000.mixer: timeout waiting for VSYNC ------------[ cut here ]------------ WARNING: CPU: 1 PID: 11 at drivers/gpu/drm/drm_atomic_helper.c:1682 drm_atomic_helper_wait_for_vblanks.part.0+0x2b0/0x2b8 [CRTC:70:crtc-1] vblank wait timed out Modules linked in: CPU: 1 PID: 11 Comm: kworker/u16:0 Not tainted 6.9.0-rc5-next-20240424 #14913 Hardware name: Samsung Exynos (Flattened Device Tree) Workqueue: events_unbound deferred_probe_work_func Call trace: unwind_backtrace from show_stack+0x10/0x14 show_stack from dump_stack_lvl+0x68/0x88 dump_stack_lvl from __warn+0x7c/0x1c4 __warn from warn_slowpath_fmt+0x11c/0x1a8 warn_slowpath_fmt from drm_atomic_helper_wait_for_vblanks.part.0+0x2b0/0x2b8 drm_atomic_helper_wait_for_vblanks.part.0 from drm_atomic_helper_commit_tail_rpm+0x7c/0x8c drm_atomic_helper_commit_tail_rpm from commit_tail+0x9c/0x184 commit_tail from drm_atomic_helper_commit+0x168/0x190 drm_atomic_helper_commit from drm_atomic_commit+0xb4/0xe0 drm_atomic_commit from drm_client_modeset_commit_atomic+0x23c/0x27c drm_client_modeset_commit_atomic from drm_client_modeset_commit_locked+0x60/0x1cc drm_client_modeset_commit_locked from drm_client_modeset_commit+0x24/0x40 drm_client_modeset_commit from __drm_fb_helper_restore_fbdev_mode_unlocked+0x9c/0xc4 __drm_fb_helper_restore_fbdev_mode_unlocked from drm_fb_helper_set_par+0x2c/0x3c drm_fb_helper_set_par from fbcon_init+0x3d8/0x550 fbcon_init from visual_init+0xc0/0x108 visual_init from do_bind_con_driver+0x1b8/0x3a4 do_bind_con_driver from do_take_over_console+0x140/0x1ec do_take_over_console from do_fbcon_takeover+0x70/0xd0 do_fbcon_takeover from fbcon_fb_registered+0x19c/0x1ac fbcon_fb_registered from register_framebuffer+0x190/0x21c register_framebuffer from __drm_fb_helper_initial_config_and_unlock+0x350/0x574 __drm_fb_helper_initial_config_and_unlock from exynos_drm_fbdev_client_hotplug+0x6c/0xb0 exynos_drm_fbdev_client_hotplug from drm_client_register+0x58/0x94 drm_client_register from exynos_drm_bind+0x160/0x190 exynos_drm_bind from try_to_bring_up_aggregate_device+0x200/0x2d8 try_to_bring_up_aggregate_device from __component_add+0xb0/0x170 __component_add from mixer_probe+0x74/0xcc mixer_probe from platform_probe+0x5c/0xb8 platform_probe from really_probe+0xe0/0x3d8 really_probe from __driver_probe_device+0x9c/0x1e4 __driver_probe_device from driver_probe_device+0x30/0xc0 driver_probe_device from __device_attach_driver+0xa8/0x120 __device_attach_driver from bus_for_each_drv+0x80/0xcc bus_for_each_drv from __device_attach+0xac/0x1fc __device_attach from bus_probe_device+0x8c/0x90 bus_probe_device from deferred_probe_work_func+0 ---truncated---
- Severity
- medium
- Software
- Kernel
- Fixed in
- 6.9.6
- Published
How likely is exploitation
FIRST's Exploit Prediction Scoring System puts the probability of this CVE being exploited in the next 30 days at <0.1% — higher than 1% of all published CVEs. EPSS is an independent forecast of exploitation, not a severity rating: it says nothing about how much damage a successful attack does, which is what a CVSS score measures.
Affected versions
From: 6.8.3
Until: 6.9.6
Fixed in: 6.9.6
How to fix this CVE
Update your Linux kernel to version 6.9.6 or later to resolve this display driver issue affecting Exynos HDMI hardware. This vulnerability impacts systems where EDID (Extended Display Identification Data) reading fails, causing the driver to attempt incompatible display modes that certain Exynos SoC variants cannot support, leading to kernel warnings and display initialization failures. Apply the kernel update through your distribution's package manager to restore proper HDMI fallback behavior.
sudo dnf update kernelDefensia detects this vulnerability
How to check if you are affected
- Step 1: Check your installed kernel version with `uname -r` and compare against the fixed version 6.9.6 or later
- Step 2: Verify if your system uses Exynos HDMI hardware by checking `lspci | grep -i hdmi` or inspecting device tree bindings in `/proc/device-tree`
- Step 3: Search kernel logs for HDMI initialization errors with `sudo dmesg | grep -i hdmi` and look for 'PLL could not reach steady state' or 'timeout waiting for VSYNC' messages
- Step 4: Confirm the fix by upgrading to kernel 6.9.6+ and verifying no HDMI-related warnings appear in `sudo journalctl -xe | grep -i hdmi` after reboot
FAQ
What is CVE-2024-40916?
CVE-2024-40916 is a medium-severity Linux kernel vulnerability in the Exynos HDMI display driver where EDID reading failures cause the driver to attempt unsupported display resolutions (1024x768), triggering kernel warnings and display initialization timeouts on affected Exynos SoC variants like those in Samsung Exynos4-based devices.
Is CVE-2024-40916 being actively exploited?
No, CVE-2024-40916 is not listed on CISA's Known Exploited Vulnerabilities (KEV) catalog and has no public exploit available. It is a reliability issue rather than a security exploit vector.
What versions of Kernel are affected by CVE-2024-40916?
Linux kernel versions 6.8.3 through 6.9.5 are affected. The vulnerability is fixed in kernel 6.9.6 and later stable releases.
How do I check if my server is vulnerable to CVE-2024-40916?
Run `uname -r` to check your kernel version; if it reports 6.8.3 through 6.9.5 and your system has Exynos HDMI hardware, you are vulnerable. Additionally, check `sudo dmesg | grep -E '(hdmiphy_enable|timeout waiting for VSYNC)' to see if the issue has manifested.
Does Defensia detect CVE-2024-40916?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If the Linux kernel is installed on a monitored server, CVE-2024-40916 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/35bcf16b4a28c10923ff391d14f6ed0ae471ee5f
- https://git.kernel.org/stable/c/4dfffb50316c761c59386c9b002a10ac6d7bb6c9
- https://git.kernel.org/stable/c/510a6c0dfa6ec61d07a4b64698d8dc60045bd632
- https://git.kernel.org/stable/c/6d6bb258d886e124e5a5328e947b36fdcb3a6028
- https://git.kernel.org/stable/c/799d4b392417ed6889030a5b2335ccb6dcf030ab
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2024-40916. Free for 1 server.
Get started free