CVE-2026-43415Linux内核中的scsi: ufs: core组件存在一个竞态条件漏洞。在UFS设备执行挂起操作期间,由于代码逻辑错误,取消延迟工作的操作被放置在了`ufshcd_vops_suspend`之后。这导致`ufshcd_rtc_work`函数可能在设备挂起流程仍在进行时被调度执行。在不支持时钟门控的特定硬件条件下,RTC更新工作与时钟门控操作发生冲突,最终触发异步SError中断,导致内核恐慌和系统崩溃。
该漏洞的核心在于Linux内核UFS驱动中`__ufshcd_wl_suspend`函数的实现存在时序缺陷。正常逻辑下,在执行设备挂起前应取消所有可能访问硬件的延迟工作。然而,`cancel_delayed_work_sync()`被错误地置于`ufshcd_vops_suspend`之后执行。这产生了一个竞态窗口:当`ufshcd_vops_suspend`正在执行时钟门控操作时,`ufshcd_rtc_work`可能恰好被唤醒并尝试通过`ufshcd_update_rtc()`访问硬件寄存器。如果设备不支持`UFSHCD_CAP_CLK_GATING`,系统会尝试进行RTC更新,此时时钟已被门控或电源状态改变,导致非法内存访问或总线错误,进而触发CPU的SError异常。攻击者可通过本地操作触发UFS设备的电源状态转换来利用此漏洞,导致系统拒绝服务。