CVE-2026-31711Linux内核SMB服务器(ksmbd)组件中存在一个资源管理漏洞。在处理新连接时,如果传输层分配失败,代码未能正确回滚已增加的活动连接计数器。未经身份验证的攻击者可通过反复触发此分配失败路径,永久消耗服务器的最大连接配额,最终导致合法用户无法建立SMB连接,造成拒绝服务。
该漏洞位于Linux内核的ksmbd服务器模块中,具体表现为`active_num_conn`计数器的泄漏。在`ksmbd_kthread_fn`函数处理新连接时,系统首先增加`active_num_conn`计数,然后调用`ksmbd_tcp_new_connection`。如果`alloc_transport`函数因内存不足返回NULL,原代码直接释放socket并返回错误,但未执行减少计数的操作。这意味着每次分配失败都会永久占用一个连接槽位。攻击者无需认证,只需向TCP 445端口发起连接,并通过发送大长度的RFC1002头部或利用系统内存压力,即可诱发`alloc_transport`失败。当泄漏的槽位累积达到`server_conf.max_connections`上限时,服务器将拒绝所有后续连接请求,且只能通过重新加载模块恢复。