CVE-2024-26874

drm/mediatek: Fix a null pointer crash in mtk_drm_crtc_finish_page_flip

State
Published
Severity
Not scored
Published
Apr 17, 2024
Updated
May 11, 2026
Reserved
Feb 19, 2024

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

drm/mediatek: Fix a null pointer crash in mtk_drm_crtc_finish_page_flip

It's possible that mtk_crtc->event is NULL in mtk_drm_crtc_finish_page_flip().

pending_needs_vblank value is set by mtk_crtc->event, but in mtk_drm_crtc_atomic_flush(), it's is not guarded by the same lock in mtk_drm_finish_page_flip(), thus a race condition happens.

Consider the following case:

CPU1 CPU2 step 1: mtk_drm_crtc_atomic_begin() mtk_crtc->event is not null, step 1: mtk_drm_crtc_atomic_flush: mtk_drm_crtc_update_config( !!mtk_crtc->event) step 2: mtk_crtc_ddp_irq -> mtk_drm_finish_page_flip: lock mtk_crtc->event set to null, pending_needs_vblank set to false unlock pending_needs_vblank set to true,

step 2: mtk_crtc_ddp_irq -> mtk_drm_finish_page_flip called again, pending_needs_vblank is still true //null pointer

Instead of guarding the entire mtk_drm_crtc_atomic_flush(), it's more efficient to just check if mtk_crtc->event is null before use.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 119f5173628aa7a0c3cf9db83460d40709e8241d to before accdac6b71d5a2b84040c3d2234f53a60edc398eAffected
  • 119f5173628aa7a0c3cf9db83460d40709e8241d to before dfde84cc6c589f2a9f820f12426d97365670b731Affected
  • 119f5173628aa7a0c3cf9db83460d40709e8241d to before 4688be96d20ffa49d2186523ee84f475f316fd49Affected
  • 119f5173628aa7a0c3cf9db83460d40709e8241d to before 9beec711a17245b853d64488fd5b739031612340Affected
  • 119f5173628aa7a0c3cf9db83460d40709e8241d to before d2bd30c710475b2e29288827d2c91f9e6e2b91d7Affected
  • 119f5173628aa7a0c3cf9db83460d40709e8241d to before a3dd12b64ae8373a41a216a0b621df224210860aAffected
  • 119f5173628aa7a0c3cf9db83460d40709e8241d to before 9acee29a38b4d4b70f1f583e5ef9a245db4db710Affected
  • 119f5173628aa7a0c3cf9db83460d40709e8241d to before 3fc88b246a2fc16014e374040fc15af1d3752535Affected
  • 119f5173628aa7a0c3cf9db83460d40709e8241d to before c958e86e9cc1b48cac004a6e245154dfba8e163bAffected
LinuxLinux
  • 4.7Affected
  • before 4.7Not affected
  • 4.19.311 through 4.19.*Not affected
  • 5.4.273 through 5.4.*Not affected
  • 5.10.214 through 5.10.*Not affected
  • 5.15.153 through 5.15.*Not affected
  • 6.1.83 through 6.1.*Not affected
  • 6.6.23 through 6.6.*Not affected
  • 6.7.11 through 6.7.*Not affected
  • 6.8.2 through 6.8.*Not affected
  • 6.9 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.