CVE-2025-68211CVE-2025-68211是Linux内核中KSM(Kernel Samepage Merging)模块的一个拒绝服务漏洞。该漏洞存在于scan_get_next_rmap_item()函数中,当扫描大型虚拟内存区域时,该函数会遍历VMA中的每个页面地址来定位可合并页面。对于包含大量未映射区域的大内存映射(如32 TiB映射但仅填充少量页面),KSM会消耗大量CPU资源进行无效扫描,导致ksmd进程几乎无法完成任何有价值的页面去重工作。本地低权限用户可以利用此漏洞通过创建稀疏内存映射并启用KSM,使系统CPU资源被ksmd进程大量占用,从而造成拒绝服务。CVSS评分5.5,属于中等严重程度。
漏洞根源在于scan_get_next_rmap_item()函数的实现方式。该函数采用逐地址遍历的方式扫描VMA中的每个页面,无论该地址是否实际映射了物理页面。当处理稀疏内存映射时(如32 TiB虚拟空间但仅1页实际映射),KSM会尝试扫描所有地址空间,导致:1) ksmd进程CPU使用率达到100%;2) 扫描一个32 TiB映射可能需要超过1小时;3) 实际上只能合并极少数页面,效率极低。攻击者只需创建大型稀疏映射(MAP_NORESERVE | MAP_PRIVATE | MAP_ANON),填充至少一个页面使其具有anon_vma,然后调用madvise(area, size, MADV_MERGEABLE)启用KSM合并,调用pause()保持进程运行。修复方案是使用walk_page_range()进行范围遍历,让KSM能够跳过未映射的内存区域,仅扫描实际映射的页面。