CVE-2026-31564Linux内核中的LoongArch架构KVM模块存在安全漏洞。在`kvm_eiointc_regs_access()`函数中,寄存器基地址的计算逻辑存在缺陷。由于未将`u64`类型的数组基地址转换为`void *`指针类型即进行偏移量相加,导致地址计算错误。本地低权限攻击者可利用此漏洞触发内核异常,导致系统崩溃或拒绝服务。
该漏洞位于Linux内核的LoongArch KVM实现中,具体涉及扩展中断控制器(EIOINTC)的寄存器访问处理。问题的核心在于C语言指针运算与整数运算的混用。在`kvm_eiointc_regs_access()`函数中,寄存器的基地址被存储在`u64`类型的变量中。根据补丁信息,正确的计算流程应先将该`u64`基地址转换为`void *`类型指针,然后加上偏移量。原始代码的实现方式导致了地址计算结果的偏差,可能指向非预期的内存区域。在KVM虚拟化环境下,这种错误的地址计算若被Guest OS触发,将导致Host内核访问无效内存,进而引发内核崩溃。鉴于CVSS向量(AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H),该漏洞主要影响系统的可用性,且已存在公开的PoC代码及Metasploit利用模块。