CVE-2023-53650CVE-2023-53650是Linux内核omapfb子系统中lcd_mipid驱动的一个内存泄漏漏洞。该漏洞位于SPI探测函数mipid_spi_probe()的错误处理路径中。当mipid_detect()函数执行失败时,代码没有正确释放已分配的内存结构'md',导致内存泄漏问题。
omapfb是Linux内核中针对TI OMAP系列处理器的帧缓冲设备(Framebuffer)驱动,而lcd_mipid则是其中用于控制MIPI DSI接口LCD面板的子模块。该驱动通过SPI总线与显示控制器进行通信,负责初始化和控制兼容MIPI标准的LCD显示屏。
该漏洞的CVSS评分为5.5,属于中等严重等级。虽然漏洞本身不直接导致代码执行或权限提升,但由于其发生在设备探测阶段,如果系统反复进行设备插拔或重新初始化操作,内存泄漏会不断累积,最终可能导致系统内存耗尽,引发拒绝服务(DoS)状态。攻击者需要本地低权限访问即可触发此漏洞,无需用户交互,这使得在多用户环境或容器化部署中该漏洞的危害性进一步增加。
该漏洞已于2025年10月7日公开披露,影响多个Linux内核稳定版本。Linux内核维护团队已通过多个commit修复了该问题,主要方案是在mipid_detect()失败时添加适当的内存释放逻辑,确保资源被正确回收。
从技术层面分析,该漏洞的根本原因在于mipid_spi_probe()函数的错误处理路径不完整。具体而言,在SPI设备探测过程中,驱动首先分配了一个mipid_device结构体('md'),然后调用mipid_detect()函数尝试检测和初始化LCD面板。当mipid_detect()返回失败时,原代码直接跳转到错误处理标签,但没有释放之前分配的'md'结构体,造成内存泄漏。
漏洞的利用方式相对简单:攻击者只需在本地系统中触发相关设备的探测流程即可。例如,在支持OMAP平台的设备上加载omapfb模块,或者通过模拟SPI设备的方式让系统尝试探测mipid设备。每次探测失败都会泄漏一个mipid_device结构体。
利用步骤如下:
1. 攻击者获取本地系统的低权限访问
2. 通过内核模块加载、设备热插拔事件或修改设备树等方式触发mipid_spi_probe()调用
3. 确保mipid_detect()函数返回失败(例如通过模拟不兼容的SPI设备)
4. 每次失败都会泄漏一个mipid_device结构体
5. 反复执行上述步骤,累积内存泄漏
6. 当系统内存耗尽时,触发内核OOM killer或系统崩溃
修复方案是在mipid_detect()失败后,在错误处理路径中添加kfree(md)调用,确保已分配的内存被正确释放。修复涉及多个内核稳定分支,包括5.10、5.15、6.1和6.6等长期支持版本。