CVE-2026-43201Linux内核APEI/GHES组件在处理ARM处理器错误记录时存在越界访问漏洞。因未对BIOS生成的错误记录中的 `section_length` 和 `ctx_info->size` 进行充分验证,当接收到畸形数据时,内核会读取边界外的内存。这导致内核发生OOPS(恐慌),造成系统拒绝服务。该漏洞需本地权限触发,依赖特定BIOS行为。
漏洞原理在于Linux内核 `drivers/ras/ras.c` 文件中的 `log_arm_hw_error` 函数。该函数负责解析来自BIOS的ARM处理器错误信息结构。代码在遍历上下文信息时,使用指针算术来定位下一个 `cper_arm_ctx_info` 结构体。关键问题在于循环中直接使用 `ctx_info->size` 计算偏移量 `sz`,并移动指针 `ctx_info`,而没有检查计算出的地址是否仍在原始分配的缓冲区范围内。攻击者(或恶意的BIOS/QEMU环境)可以构造一个 `section_length` 很小但声称包含大量上下文信息的错误记录,或者是一个被截断的记录。当内核尝试访问这些越界地址时,会触发缺页异常,导致内核崩溃。由于攻击向量为本地且需要低权限,主要影响是系统可用性(DoS),而非机密性泄露。