CVE-2026-31596Linux内核中的OCFS2集群文件系统模块存在一个安全漏洞。该漏洞源于`ocfs2_group_extend`函数在处理全局位图inode块时,未对dinode签名进行充分验证。本地低权限攻击者可以通过挂载特制的文件系统镜像,利用该漏洞触发内核断言(BUG_ON),导致系统崩溃。此漏洞主要影响系统的可用性,成功利用可造成拒绝服务。
该漏洞位于Linux内核的OCFS2文件系统实现中,具体涉及`fs/ocfs2/resize.c`文件里的`ocfs2_group_extend`函数。问题产生的根本原因是该函数假定通过`ocfs2_inode_lock`获取的全局位图inode块已经通过了有效性验证。然而,在处理JBD2(Journaling Block Device 2)管理的缓冲区路径时,可能绕过结构验证,从而向resize ioctl操作返回一个无效的dinode(磁盘索引节点)。当函数检查到无效签名时,原本的代码使用了`BUG_ON`宏,这会直接触发内核恐慌(Kernel Panic)并导致系统宕机,而不是通过错误码返回。修复方案是在调用点显式验证dinode的有效性,如果检测到无效数据,使用`ocfs2_error()`报告文件系统损坏并优雅地失败,而不是直接崩溃。