CVE-2026-31654Linux内核内存管理子系统存在一处内存泄漏漏洞。在处理/dev/zero的MAP_SHARED映射时,若后续VMA分配失败,系统未能正确释放之前分配的shmem文件资源。该漏洞可被本地低权限用户利用,长期运行可能导致系统内存资源耗尽。
该漏洞源于Linux内核mm/vma模块中的__mmap_region函数。当对/dev/zero执行MAP_SHARED映射时,mmap_zero_prepare会调用shmem_zero_setup_desc分配一个新的shmem文件。尽管之前的提交修复了成功路径的逻辑,但未处理错误路径:如果__mmap_new_vma分配失败,代码直接返回而未对新文件执行fput操作,导致文件描述符及关联内存泄漏。攻击者可通过编写特定程序并配合故障注入机制(如failslab)稳定触发该缺陷,耗尽内核内存资源,从而引发拒绝服务。