CVE-2026-31562Linux内核中的drm/mediatek: dsi组件存在一个拒绝服务漏洞。该漏洞的根本原因是在调用mipi_dsi_host_register之前未能正确初始化驱动私有数据。当该函数触发mtk_dsi_bind回调时,dev_get_drvdata试图获取尚未存储的mtk_dsi结构体,导致空指针解引用错误。这会在系统注册DSI DRM编码器期间引发崩溃,进而阻塞所有后续的DRM显示操作,导致系统可用性中断。
该漏洞位于Linux内核的MediaTek DSI驱动初始化流程中。在`mtk_dsi_probe`函数执行期间,代码调用了`mipi_dsi_host_register`函数。此调用会触发`mtk_dsi_bind`回调。在`mtk_dsi_bind`函数内部,代码使用`dev_get_drvdata`来检索并使用`mtk_dsi`结构体指针。然而,由于代码逻辑错误,在调用`mipi_dsi_host_register`之前并未执行`dev_set_drvdata`来初始化该数据结构。因此,回调获取到的指针为NULL。随后,当`drm_encoder_init`尝试通过此NULL指针访问内存(特别是在`drm_mode_object_add`内部)时,会导致内核空指针解引用错误。攻击者只需具备本地低权限即可触发设备探测或模块加载,从而导致系统崩溃或DRM子系统挂起。