CVE-2026-31536Linux内核SMB服务器组件存在一处严重的内存破坏漏洞。在处理smbdirect_send_batch请求时,部分请求未设置IB_SEND_SIGNALED标志。若此时连接异常断开,硬件会强制为所有请求发送完成信号。由于send_done函数未考虑处理无标志完成的情况,导致内核空指针解引用或内存破坏,攻击者可利用此漏洞导致系统崩溃或执行任意代码。
该漏洞的技术核心在于Linux内核SMB服务器对RDMA(SMB Direct)传输层请求完成通知的处理逻辑错误。在正常流程中,send_done函数预期处理的完成请求通常带有IB_SEND_SIGNALED标志,或者在批量发送的最后一个请求中被统一处理。然而,当网络连接意外中断时,InfiniBand/RDMA硬件会为所有挂起的请求生成完成事件,而无论其是否设置了IB_SEND_SIGNALED标志。由于send_done回调函数缺乏对这种异常情况的处理逻辑,它可能会尝试访问无效的内存地址(如已释放的请求结构体或未初始化的指针)。这导致了内核态的空指针解引用或释放后使用(UAF)漏洞。鉴于CVSS评分为9.8,该漏洞很可能允许未经身份验证的远程攻击者通过发送特制的SMB数据包序列并触发连接中断,从而造成内核崩溃(DoS)或潜在的远程代码执行(RCE)。