KernelScan.io

HIGH Introduced in 4.5

omapfb DisplayLock Race

CVE-2026-89599

CVSS 8.4 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

KernelScan AI6.6MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: fbdev: omapfb: panel-dsi-cm: initialize lock before registering display dsicm_probe() registers the display before initializing ddata->lock. Once omapdss_register_display() publishes the display, another consumer can reach a dsicm callback that takes this mutex while it is still uninitialized. Initialize the mutex before registering the display so the published callbacks always see a valid lock.

02

Engine v0.6.0

Risk summary

A race condition exists in the OMAP framebuffer display panel driver where the display is registered before its protecting mutex is initialized. A local user on a system with OMAP DSI display hardware could trigger a callback that uses the uninitialized lock, leading to undefined behavior ranging from a kernel crash to potential memory corruption. Exploitation requires specific OMAP SoC hardware and a narrow timing window during device probe.

Affecteddrivers/video/fbdev/omap2/omapfb/displays/panel-dsi-cm.c (omapfb panel-dsi-cm)

Vulnerability analysis

The OMAP DSI display panel driver registers the display with the display subsystem before initializing the mutex that guards its private data structure. Once the display is published, any kernel consumer that calls into a panel callback can attempt to acquire this lock while it is still uninitialized, causing undefined behavior. The fix moves the mutex initialization ahead of the registration call so that every callback that runs after the display becomes visible always finds a valid lock. This issue is only reachable on systems with OMAP SoC hardware using the DSI panel driver, and exploitation requires a local actor to trigger display operations within the short window between registration and lock initialization during device probe.

03

BranchIntroducedFixed inPatch commit
7.24.57.2.409db79078f25
6.64.56.6.157302d19fbc7dc
6.124.56.12.1092c3f8c9c995d
mainline4.57.3-rc1f8e43fe0f22b
6.184.56.18.5076818e81cfca
5.154.55.15.221e7023d18c4eb
5.104.55.10.270ef20d4e17d7f
6.14.56.1.188f33a96e49284
cip/6.124.56.12.111-cip322c3f8c9c995d