CVE-2026-31608Linux内核的SMB服务器组件中存在一个严重的双重释放漏洞。该漏洞发生在`smb_direct_free_sendmsg`函数与`smb_direct_flush_sendlist`函数的交互过程中。由于逻辑错误,在消息被移动到批处理列表后,系统错误地再次尝试释放已释放的内存。攻击者无需认证即可通过网络利用此漏洞,可能导致内核崩溃或执行任意代码。
该漏洞位于Linux内核的`smb: server`模块,涉及RDMA(远程直接内存访问)相关的SMB直接传输功能。具体而言,`smb_direct_flush_send_list`函数负责刷新发送列表并调用`smb_direct_free_sendmsg`释放消息内存。然而,在`post_sendmsg`将消息对象转移到批处理列表后,代码路径并未正确检查该消息是否已被释放,导致再次调用`smb_direct_free_sendmsg`。这种双重释放操作破坏了内核堆管理器的元数据。在CVSS 3.1评分中,该漏洞获得9.8分,意味着攻击者可以通过发送特制的SMB网络包触发该漏洞,进而实现本地提权或远程代码执行,完全控制宿主系统。