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

CVE-2026-43315: Linux Kernel nSVM拒绝服务漏洞

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

漏洞信息

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

相关标签

Linux KernelDoS拒绝服务KVMnSVMLocalCVE-2026-43315

漏洞概述

Linux内核KVM模块nSVM组件存在逻辑缺陷,引发本地拒绝服务漏洞。攻击者利用KVM ABI允许灵活设置CPUID与SREGS的特性,通过先设置非法CR3值随后修改CPUID属性的方式触发内核警告。该操作在特定内核配置下会导致系统崩溃,从而严重影响系统可用性。

技术细节

该漏洞位于Linux内核的KVM nSVM模块,具体涉及`svm_set_nested_state()`与`nested_svm_load_cr3()`函数的处理逻辑。由于KVM的ABI设计允许用户空间以任意顺序设置CPUID和SREGS,且对CPUID设置较为宽松,攻击者可以先加载一个设置了高位CR3值(如BIT(44))的状态,然后调用`vcpu_set_cpuid_property`修改最大物理地址宽度(例如设为36位),使得之前的CR3值超出合法范围。这种人为制造的状态不一致会触发`nested_svm_load_cr3()`失败,进而引发内核`WARN`警告。如果系统开启了`panic_on_warn`配置,此警告将直接导致内核崩溃,从而实现拒绝服务攻击。

攻击链分析

STEP 1
获取访问权限
本地攻击者获取对KVM虚拟机的用户空间访问权限。
STEP 2
构造非法状态
攻击者设置虚拟机状态,加载一个超出物理地址限制的CR3值(BIT(44))。
STEP 3
修改CPUID
在加载CR3后,攻击者修改CPUID属性,将最大物理地址宽度设置为较小的值(如36位),导致之前的CR3值非法。
STEP 4
触发漏洞
系统在加载嵌套状态时检测到CR3与CPUID不匹配,触发内核WARN,若配置了panic_on_warn则导致系统崩溃。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// Modified state restoration selftest snippet if (stage == 4) { // Set CR3 to a high bit value state->sregs.cr3 = BIT(44); vcpu_load_state(vcpu, state); // Modify CPUID property to make the CR3 value illegal vcpu_set_cpuid_property(vcpu, X86_PROPERTY_MAX_PHY_ADDR, 36); __vcpu_nested_state_set(vcpu, &state->nested); } else { vcpu_load_state(vcpu, state); }

影响范围

Linux Kernel (Fixed in commit 155ec243ef726f4bc49536fa0bfb565dc011ab17)
Linux Kernel (Fixed in commit 580ea57840864d40e019bc13fd26afdc8d510a2f)
Linux Kernel (Fixed in commit 969e5e13ff5c18603f21d1f9f64ec9194e141ac0)
Linux Kernel (Fixed in commit ce904c8a5bbe697eae0f7e34b07095bd7a6dee19)
Linux Kernel (Fixed in commit deb8f6dfd31d94b18dbeeaa8c01fbec5fc70fd2b)

防御指南

临时缓解措施
限制非受信用户对本地KVM模块的访问权限,并确保内核未配置为在警告时自动崩溃。

参考链接

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