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

CVE-2026-31540 Linux内核i915驱动空指针解引用漏洞

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

漏洞信息

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

相关标签

Linux KernelDoSNULL Pointer Dereferencei915LocalKernelCVE-2026-31540

漏洞概述

Linux内核中的drm/i915/gt驱动模块存在一个空指针解引用漏洞。当i915驱动所需的固件二进制文件缺失时,set_default_submission指针未被正确初始化。然而,在系统挂起过程中,代码仍然尝试解引用该指针,导致内核崩溃。该漏洞需要本地低权限即可触发,主要影响系统的可用性,导致拒绝服务。

技术细节

该漏洞源于Linux内核图形驱动i915的初始化逻辑错误。在特定环境(如固件文件缺失)下,set_default_submission函数指针保持为NULL。漏洞触发点位于系统挂起流程中,具体调用路径为i915_gem_suspend_late -> gt_sanitize -> __intel_gt_unset_wedged -> intel_engines_reset_default_submission。当调用intel_engines_reset_default_submission时,代码未检查指针有效性直接调用,引发BUG: kernel NULL pointer dereference。由于攻击向量为本地且无需用户交互(AV:L/PR:L/UI:N),本地低权限用户可通过触发系统休眠导致系统崩溃,造成拒绝服务。

攻击链分析

STEP 1
步骤1
攻击者确保目标系统上缺少i915驱动所需的固件二进制文件。
STEP 2
步骤2
系统加载i915驱动,由于缺少固件,set_default_submission指针未被设置(为NULL)。
STEP 3
步骤3
本地低权限用户触发系统挂起操作(如执行休眠指令)。
STEP 4
步骤4
内核在挂起过程中调用intel_engines_reset_default_submission,解引用NULL指针,导致内核崩溃和拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC for CVE-2026-31540 * Trigger: System suspend when i915 firmware is missing. */ #include <stdio.h> #include <stdlib.h> int main() { printf("[+] Attempting to trigger suspend to dereference NULL pointer...\n"); printf("[+] Prerequisite: i915 firmware binaries are missing from the system.\n"); // Trigger system suspend (mem state) // This path leads to i915_gem_suspend_late -> intel_engines_reset_default_submission int ret = system("echo mem > /sys/power/state"); if (ret == -1) { perror("Failed to write to /sys/power/state"); return 1; } return 0; }

影响范围

Linux Kernel (versions with the vulnerable i915/gt code, e.g., 6.19.0-rc4)

防御指南

临时缓解措施
确保系统安装了正确的i915固件二进制文件,或者升级Linux内核至包含修复补丁的版本。

参考链接

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