CVE-2026-31425Linux内核RDS模块存在空指针引用漏洞。攻击者可利用`sendmsg`系统调用及`RDS_CMSG_RDMA_MAP`控制消息,在IB连接建立前触发内存注册逻辑,导致内核解引用空指针并崩溃,从而造成拒绝服务。
该漏洞位于Linux内核的`net/rds/ib_frmr.c`文件中。当`rds_ib_get_mr()`被调用以注册FRMR内存时,它从连接对象获取`rds_ib_connection`结构体。问题在于,对于新建的出站连接,虽然连接对象`ic`已被分配,但其成员`i_cm_id`(InfiniBand连接管理ID)在连接工作线程调用`rds_ib_conn_path_connect`之前仍为NULL。漏洞触发条件是攻击者在连接建立之前,通过`sendmsg`发送带有`RDS_CMSG_RDMA_MAP`的消息。这导致`rds_ib_post_reg_frmr`函数尝试访问`ic->i_cm_id->qp`,由于`i_cm_id`为空,引发内核空指针解引用错误(KASAN报错),导致系统崩溃或重启。修复方案是在注册前增加对`i_cm_id`和`qp`的非空检查。