CVE-2025-71096CVE-2025-71096是Linux内核中RDMA/core子系统的安全漏洞,存在于RDMA_NL_LS_OP_IP_RESOLVE操作的netlink响应处理逻辑中。该漏洞允许本地低权限用户通过构造恶意的netlink消息,触发内核从未初始化的栈内存中读取数据,可能导致敏感内核信息泄露。漏洞的根本原因在于对LS_NLA_TYPE_DGID属性的验证和解析逻辑不完善,当用户空间不提供必需的DGID时,内核会执行未初始化的读取操作。此漏洞通过KMSAN(Kernel Memory Sanitizer)检测发现,攻击复杂度低,无需用户交互即可触发。
该漏洞位于Linux内核的drivers/infiniband/core/addr.c文件中,具体在ib_nl_handle_ip_res_resp和ib_nl_process_good_ip_rsep函数中。问题在于RDMA_NL_LS_OP_IP_RESOLVE的netlink响应处理逻辑存在缺陷:原来的代码使用for循环搜索nla属性,但这种方式无法正确验证DGID的存在性。当用户空间发起IP解析请求但不提供LS_NLA_TYPE_DGID属性时,内核直接索引nlattrs数组获取DGID数据,导致读取未初始化的栈内存。漏洞触发路径为:用户空间通过netlink发送不包含DGID的IP_RESOLVE请求 -> 内核ib_nl_handle_ip_res_resp处理响应 -> 调用ip6_string/vsprintf进行格式化输出 -> 读取未初始化的栈数据。修复方案是使用nla_parse_deprecated()正确填充nlattrs数组,然后直接索引该数组获取DGID数据,如果为NULL则直接返回错误。