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

CVE-2026-43344 Linux内核perf组件拒绝服务漏洞

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

漏洞信息

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

相关标签

Linux Kernel拒绝服务本地漏洞Intel硬件驱动

漏洞概述

Linux内核perf/x86/intel/uncore组件存在拒绝服务漏洞。该漏洞源于Die ID初始化及查找逻辑缺陷,特别是在CPU离线或NUMA被禁用的场景下。错误的处理逻辑会导致PMON单元被忽略或初始化流程非正常中断,致使性能监控子系统功能失效,本地低权限攻击者可利用此漏洞破坏系统可用性。

技术细节

该漏洞主要涉及Linux内核中Intel Uncore性能监控单元的初始化逻辑。在`snbep_pci2phy_map_init`函数中,当`nr_node_ids > 8`且相关CPU处于离线状态时,`uncore_device_to_die`返回-1。原代码错误地将其视为严重错误并中断循环或返回`-EINVAL`,导致扫描遗漏。此外,在NUMA被禁用的NUMA能力平台上,`pcibus_to_node`返回`NUMA_NO_NODE`,导致`spr_update_device_location`函数无法正确识别设备拓扑,进而忽略PMON单元。补丁通过使用`uncore_pcibus_to_dieid`读取硬件寄存器(UBOX GIDNIDMAP)来替代依赖操作系统NUMA状态的调用,确保在各种配置下均能正确获取Die ID。本地攻击者可通过触发这些边界条件,导致内核子系统不可用。

攻击链分析

STEP 1
侦察
攻击者确认目标系统运行受影响的Linux内核版本,且硬件为Intel Xeon(特别是SPR或EMR平台)。
STEP 2
条件触发
攻击者利用本地低权限访问,诱导或等待系统状态变更(如CPU被管理员下线或NUMA功能被禁用)。
STEP 3
漏洞利用
触发受影响代码路径(如perf事件调用),导致`snbep_pci2phy_map_init`或`spr_update_device_location`执行错误的Die ID查找逻辑。
STEP 4
影响达成
内核忽略PMON单元或初始化中断,导致性能监控不可用,严重时造成拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC for CVE-2026-43344 * Trigger Condition: CPU offline or NUMA disabled on Intel SPR/EMR platforms. * This code attempts to illustrate the scenario where uncore init fails. */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> void simulate_trigger() { // In a real environment, an attacker would offline specific CPUs // associated with the UBOX device before triggering the init path. // e.g., echo 0 > /sys/devices/system/cpu/cpuX/online printf("[+] Simulating CPU offline state..."); system("dmesg -c > /dev/null"); // Clear dmesg // Triggering the perf subsystem to initialize uncore // This requires specific hardware (Intel Xeon Scalable) system("perf stat -e uncore_imc_0/cas_count_read/ sleep 0.1 2>&1"); printf("[+] Checking kernel logs for Die ID lookup failures..."); system("dmesg | grep -i 'die\|uncore\|pci2phy'"); } int main() { if (geteuid() != 0) { printf("[!] This PoC requires root privileges to manipulate CPU state and read dmesg."); return 1; } simulate_trigger(); return 0; }

影响范围

Linux Kernel (具体版本请参考Git提交 6a5dc3ee97581da2907fc7acd62853f07184de67)

防御指南

临时缓解措施
建议系统管理员尽快应用官方发布的补丁,更新Linux内核至修复版本。在未更新前,应保持NUMA功能开启,并避免在系统运行期间随意将CPU设置为离线状态,以减少触发漏洞的风险。

参考链接

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