CVE-2026-31558Linux内核LoongArch架构的KVM模块中存在安全漏洞。`kvm_get_vcpu_by_cpuid()`函数未正确处理负的cpuid参数,导致越界访问`kvm_arch::phyid_map::phys_map[]`数组。本地攻击者可利用此漏洞造成内存破坏,可能导致系统崩溃或潜在的权限提升。
该漏洞源于Linux内核LoongArch架构KVM模块中的`kvm_get_vcpu_by_cpuid()`函数存在逻辑缺陷。该函数接收一个`int`类型的`cpuid`参数,但在使用该参数作为索引访问`kvm_arch::phyid_map::phys_map[]`数组之前,未对参数是否为负数进行校验。由于`int`类型可以存储负数,攻击者若传入负值(如-1),将导致数组越界访问。这种越界访问可能读取或写入内核敏感内存区域。尽管攻击需要本地访问(AV:L)和低权限(PR:L),但考虑到其影响范围(S:C)和对CIA三要素的完全破坏(C:H/I:H/A:H),此漏洞风险极高。