CVE-2026-31648Linux内核文件映射组件存在严重竞态条件漏洞,导致页面数量计算发生整数溢出。攻击者可利用此漏洞在本地触发内核崩溃或破坏内存完整性,从而可能导致权限提升。该漏洞主要影响Arm64架构,并在高并发文件操作场景下可被复现。
该漏洞源于filemap_map_pages()与ext4_setattr()之间的竞态。当CPU0执行filemap_map_pages()获取旧i_size的folio时,CPU1通过ext4_setattr()缩小了文件大小。随后CPU0使用新的i_size计算end_pgoff,结合旧的folio索引计算nr_pages。若end_pgoff小于起始索引,导致整数下溢,nr_pages变为极大值,使set_pte_range()映射超出folio范围的内存,破坏邻近页面的_mapcount等字段,引发内核异常。