CVE-2026-6386FreeBSD内核在处理保护密钥更新时存在安全漏洞。由于`pmap_pkru_update_range()`函数未正确处理通过`shm_create_largepage(3)`接口创建的1GB大页映射,错误地将用户空间内存视为页表页。本地未授权用户可利用此漏洞覆盖应用程序原本无权访问的内存区域,可能导致敏感信息泄露或权限提升。
该漏洞位于FreeBSD内核的物理映射(pmap)子系统中。当内核需要为特定地址范围应用保护密钥时,会调用`pmap_pkru_update_range()`来更新页表项。该函数在处理页目录条目时存在逻辑缺陷,未能考虑到使用`shm_create_largepage(3)`创建的1GB大页映射,总是假定页目录条目指向的是另一个页表页。
攻击者可以通过创建特制的1GB大页映射来触发该漏洞。当内核尝试更新这一大页范围的PKRU时,会错误地将用户空间内存地址解释为页表页地址,并尝试向其写入页表数据。这种越权写入行为导致应用程序可以覆盖其通常无权访问的内存区域,破坏了内存隔离机制。