CVE-2026-43124Linux内核的pstore模块中的ram_core组件存在一个逻辑漏洞。在persistent_ram_vmap函数中,当vmap()调用失败返回NULL时,如果偏移量不为零,代码错误地将偏移值加到NULL指针上,导致返回了一个非空的无效地址。这导致上层函数误判映射成功,后续访问该无效地址会引发系统崩溃。
该漏洞位于Linux内核的fs/pstore/ram_core.c文件中。问题出在persistent_ram_vmap()函数的实现逻辑里。该函数调用vmap()尝试建立虚拟地址映射,正常情况下失败应返回NULL。然而,代码直接返回了`vaddr + offset_in_page(start)`。当vmap()失败(vaddr为NULL)且offset_in_page(start)不为0时,指针运算结果变成了一个非NULL的无效地址(等于偏移量的数值)。调用者persistent_ram_buffer_map()检查返回值不为NULL,便认为映射成功,继续使用该指针。当后续代码访问prz->buffer时,会触发内核态的非法内存访问,导致Kernel Panic。攻击者需具备本地低权限,通过特定的内存压力或触发pstore记录机制可利用此漏洞造成拒绝服务。