CVE-2026-23346Linux内核arm64架构的`ioremap_prot()`函数存在漏洞。当`generic_access_phys()`调用该函数并传递包含权限位的`pgprot_t`值时,由于未正确提取用户内存类型,导致在启用PAN(特权访问永不)的系统中,内核访问该映射时发生权限错误,进而引发系统崩溃或拒绝服务。
该漏洞源于Linux内核在arm64平台上处理IO重映射时的逻辑缺陷。`generic_access_phys()`函数尝试通过`ioremap_prot()`建立物理内存的映射,并直接传递了从用户页表获取的`pgprot_t`结构。在arm64架构中,该结构不仅包含内存类型,还包含权限控制位。由于`ioremap_prot()`未过滤这些用户态权限位,导致返回的映射保留了用户态属性。当带有PAN特性的内核尝试读取该区域时,硬件会阻止访问并触发异常,导致内核恐慌。攻击者可利用此漏洞通过本地特定的读取操作(如读取进程环境变量)触发崩溃。