IPBUF安全漏洞报告
English
CVE-2026-43275 CVSS 4.7 中危

CVE-2026-43275 Linux内核UFS驱动竞态条件漏洞

披露日期: 2026-05-06
来源: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

漏洞信息

漏洞编号
CVE-2026-43275
漏洞类型
竞态条件
CVSS评分
4.7 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

Linux KernelUFSRace ConditionDoSLocalPrivilege Escalation

漏洞概述

Linux内核中的UFS核心驱动存在一个竞态条件漏洞。当运行时电源管理(RPM)级别设置为UFS_PM_LVL_0时,设备在挂起期间会绕过刷新异常事件处理任务的操作。这导致驱动程序可能在系统进入深度断电状态后仍尝试访问主机控制器,从而引发系统崩溃。该漏洞通过确保在挂起回调之前显式刷新异常处理工作并禁用自动BKOP来解决,以防止在断电序列期间进行非法硬件访问。

技术细节

该漏洞源于Linux内核UFS核心驱动在电源管理逻辑中的缺陷。当系统的运行时电源管理(RPM)级别处于第0级(UFS_PM_LVL_0)时,设备和链路状态保持活跃。在此状态下执行系统挂起操作时,驱动程序原本的逻辑会跳过对异常事件处理工作队列的刷新步骤。这种绕过机制产生了一个竞态条件:如果此时有未完成的异常处理任务,驱动程序可能会在系统已经进入深度低功耗状态(关闭了控制器电源)之后,仍然尝试向主机控制器发起访问操作。由于硬件此时已不可访问,这种非法访问会导致系统发生严重错误,进而触发内核崩溃或系统死机(拒绝服务)。攻击者利用此漏洞需要本地低权限,可通过触发特定的异常事件并在系统挂起期间保持竞争状态来导致系统崩溃。

攻击链分析

STEP 1
步骤1
攻击者获取本地低权限访问权限(AV:L/PR:L)。
STEP 2
步骤2
攻击者或环境触发UFS设备的异常事件,使异常处理任务进入工作队列。
STEP 3
步骤3
系统尝试进行挂起操作,此时运行时电源管理(RPM)级别恰好为0(UFS_PM_LVL_0)。
STEP 4
步骤4
由于漏洞逻辑,驱动程序跳过对工作队列的刷新,系统进入深度断电状态。
STEP 5
步骤5
异常处理任务尝试访问已断电的主机控制器,导致系统崩溃(拒绝服务)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * Conceptual Proof of Concept for CVE-2026-43275 * This demonstrates the logic to trigger the race condition. */ #include <linux/module.h> #include <linux/kernel.h> #include <linux/device.h> static int __init trigger_ufs_race_init(void) { // Step 1: Simulate setting RPM level to 0 (UFS_PM_LVL_0) // In a real scenario, this involves runtime_pm APIs. printk(KERN_INFO "CVE-2026-43275: Setting RPM level to 0"); // Step 2: Trigger an exception event (e.g., UFS device error) // This queues work to the exception handling workqueue. printk(KERN_INFO "CVE-2026-43275: Triggering UFS exception event"); // Step 3: Initiate system suspend immediately // If the patch is not applied, the exception handling work // will not be flushed, leading to a crash upon hardware access. printk(KERN_INFO "CVE-2026-43275: Initiating suspend sequence"); return 0; } static void __exit trigger_ufs_race_exit(void) { printk(KERN_INFO "CVE-2026-43275: Unloading module"); } module_init(trigger_ufs_race_init); module_exit(trigger_ufs_race_exit); MODULE_LICENSE("GPL");

影响范围

Linux Kernel < Commit 5d186731bc335cc049d4e57ab9f563cfab95593e
Linux Kernel < Commit 78d8e2d6352e8317686ee3a44811ac14c415a57d
Linux Kernel < Commit aa8d68d97c7f0ef966e51afc17fdbdc372700edf
Linux Kernel < Commit aac2fee7513dd25042a616f86a1469b4858d2c5c
Linux Kernel < Commit ab71c146c135f9af1614ef0fc29a0a3b84f1a373

防御指南

临时缓解措施
建议用户尽快安装Linux内核的安全更新。在无法立即升级的情况下,应尽量避免在UFS设备活跃且RPM级别为0时触发系统挂起,以减少触发竞态条件的概率。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表