CVE-2026-43259Linux内核中的fsl-imx8mq-usb驱动程序存在一个严重的逻辑缺陷。由于在驱动初始化的probe函数中遗漏了对platform_set_drvdata()的调用,导致在驱动卸载的remove函数中调用platform_get_drvdata()获取数据时,无法获取有效的设备私有数据结构。本地低权限攻击者可利用此缺陷触发内核空指针解引用,从而导致系统崩溃或拒绝服务,严重影响系统可用性。
该漏洞源于Linux内核源码中drivers/phy/freescale/phy-fsl-imx8mq-usb.c文件的实现错误。在Linux设备驱动模型中,驱动程序通常在probe阶段使用platform_set_drvdata()将设备特定的上下文信息(如寄存器映射、时钟句柄等)存储在device结构体中。然而,该驱动的probe函数直接返回,未执行此保存操作。随后,当驱动被移除或设备断开时,remove函数尝试通过platform_get_drvdata()检索这些数据以进行清理工作(如禁用时钟)。由于数据未被设置,返回的指针为NULL,驱动随即对其进行解引用操作。这将导致内核抛出空指针异常(Oops),进而引发Kernel Panic或系统死锁,导致本地拒绝服务。攻击者只需具备本地低权限即可通过解绑驱动触发该逻辑。