CVE-2026-43289Linux内核的kexec功能存在逻辑缺陷,导致拒绝服务漏洞。在`kexec_load_purgatory`函数处理purgatory对象时,如果对象包含多个地址重叠的可执行段,系统将无法正确解析入口点并触发警告。本地攻击者可利用此漏洞导致内核加载异常,影响系统可用性。
漏洞原理源于Linux内核`kernel/kexec_file.c`中的`kexec_load_purgatory`函数。该函数在加载kexec的purgatory代码时,通过检查ELF文件的`e_entry`来定位入口地址。然而,代码实现未充分处理多个可执行段(`SHF_EXECINSTR`)具有重叠虚拟地址(`sh_addr`)的边界情况。当检测到这种重叠时,内核会触发`WARN`告警,导致调用栈显示异常并可能中断系统启动流程。修复方案引入了对`purgatory_start`符号的检查,直接从该符号推导入口段,从而绕过对可能存在歧义的`e_entry`的依赖,确保了在复杂ELF结构下的稳定性。