CVE-2026-31448Linux内核ext4文件系统模块中存在一个安全漏洞。在mkdir/mknod路径映射逻辑块到物理块时,如果向ext4树插入新范围失败(例如文件系统禁用大文件特性),ext4_ext_map_blocks()仅回收物理块而不删除范围树中的对应数据。这导致后续操作引用已回收的块号,而该块同时被xattr块使用。结果导致ext4_xattr_block_set()进入无限循环,无法释放inode锁,最终导致系统长时间阻塞,引发拒绝服务风险。
该漏洞源于Linux内核ext4文件系统在处理块映射错误时的逻辑缺陷。当在mkdir或mknod操作路径中,调用ext4_ext_map_blocks()将逻辑块映射到物理块时,若因特定原因(如元数据损坏)导致插入新范围失败,函数仅调用ext4_free_blocks()回收物理块,却未同步删除范围树中的对应数据条目。这种状态不一致导致后续目录操作可能再次引用已被回收的物理块号,而该块此刻正被xattr块使用。这种双重引用导致ext4_xattr_block_set()函数在处理时陷入关于“inserted”状态的无限循环,且无法释放inode锁,最终导致任务阻塞超过143秒。攻击者可通过触发特定的文件系统操作序列利用此漏洞,造成系统锁死或拒绝服务。