IPBUF安全漏洞报告
English
CVE-2026-43446 CVSS 5.5 中危

CVE-2026-43446: Linux内核amdxdna驱动运行时暂停死锁漏洞

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

漏洞信息

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

相关标签

Linux KernelDeadlockDoSamdxdnaRace Condition本地漏洞

漏洞概述

该漏洞存在于Linux内核的accel/amdxdna驱动中。当设备进行运行时暂停时,若仍有作业正在执行并尝试唤醒设备,会导致暂停路径与作业执行路径发生死锁。这种竞争条件会使设备失去响应,造成本地拒绝服务攻击风险。

技术细节

漏洞的核心在于amdxdna驱动中运行时电源管理的逻辑缺陷。在设备进入运行时暂停状态时,回调函数会尝试排空工作队列中的任务。如果在此时,一个正在执行的作业调用pm_runtime_resume_and_get()来获取设备电源锁,就会形成循环等待:暂停流程等待作业完成,而作业流程等待设备恢复或锁释放。这种死锁导致设备无法继续处理请求,从而影响系统可用性。修复方法是将pm_runtime_resume_and_get()从作业执行阶段移至作业提交阶段,确保在任务排队前设备已处于活跃状态,从而消除了死锁条件。

攻击链分析

STEP 1
步骤1
攻击者拥有本地低权限访问权限,并向amdxdna设备提交计算作业。
STEP 2
步骤2
系统电源管理检测到设备空闲,触发运行时暂停流程。
STEP 3
步骤3
运行时暂停回调尝试排空工作队列,等待正在运行的作业结束。
STEP 4
步骤4
正在运行的作业尝试调用pm_runtime_resume_and_get()以保持设备唤醒,形成死锁。
STEP 5
步骤5
设备挂起,无法响应新的I/O请求,导致拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// Conceptual PoC for triggering the deadlock // This requires a local user with access to /dev/accel/accel0 (or similar node) #include <fcntl.h> #include <unistd.h> #include <sys/ioctl.h> #define JOB_SUBMIT _IOW('A', 0x01, struct job_args) struct job_args { void *buffer; size_t size; }; int main() { int fd = open("/dev/accel/accel0", O_RDWR); if (fd < 0) return -1; struct job_args job = {0}; // 1. Start a long-running job // This triggers the execution path where pm_runtime_resume_and_get() was called ioctl(fd, JOB_SUBMIT, &job); // 2. Trigger Runtime Suspend (e.g., via system power management commands or idle timeout) // While the job is running, if the system attempts to suspend the device, // the deadlock occurs between the suspend callback and the job execution. close(fd); return 0; }

影响范围

Linux Kernel (具体受影响版本请参考Git提交记录)

防御指南

临时缓解措施
限制非特权用户对amdxdna设备节点的访问权限,或暂时禁用受影响的驱动模块以防止死锁发生。

参考链接

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