CVE-2026-31569Linux内核中的LoongArch KVM模块存在一个安全漏洞,具体位于`eiointc_update_sw_coremap()`函数中。该漏洞源于对EIOINTC(扩展I/O中断控制器)核心映射(coremap)的处理逻辑不当。当EIOINTC的coremap为空时,当前代码会导致获取的`cpuid`值为-1。由于代码未能正确处理这种边界情况,直接使用该无效值作为索引,引发了对`kvm_arch::phyid_map::phys_map[]`数组的越界访问。该漏洞可能被本地低权限攻击者利用,导致系统崩溃(拒绝服务)或潜在的内核信息泄露,严重等级为高危。
该漏洞发生在Linux内核针对LoongArch架构的KVM虚拟化实现中,涉及扩展I/O中断控制器(EIOINTC)的核心映射更新机制。在`eiointc_update_sw_coremap()`函数执行期间,系统需要更新软件层面的核心映射。然而,当检测到EIOINTC的coremap为空时,现有代码逻辑未能正确处理该异常场景,导致`cpuid`变量被错误地赋值为-1。在补丁说明中提到,这种情况应当类似于`cpuid >= 4`的处理方式(即应使用0),但在未修复的版本中,代码直接将-1作为数组索引传递。随后,代码使用此`cpuid`访问`kvm_arch::phyid_map::phys_map[]`数组。由于-1是无效的索引(在C语言中可能导致指针回绕或直接非法访问),这触发了越界访问漏洞。攻击者需具备本地低权限(PR:L)且无需用户交互(UI:N)即可触发该漏洞。虽然利用向量为本地(AV:L),但由于涉及内核内存访问,其对系统稳定性(高可用性影响)和机密性(低机密性影响)构成威胁。