CVE-2026-31610Linux内核ksmbd模块在处理SPNEGO认证令牌时存在逻辑缺陷,导致内存泄漏。当解码器在分配mechToken后因后续字段格式错误而失败时,由于清理代码依赖错误的标志位,导致内存未被释放。未经认证的攻击者可利用此漏洞造成服务器内存耗尽。
漏洞位于ksmbd的SPNEGO解码流程中。当`ksmbd_decode_negTokenInit`解析`mechToken` [2] OCTET STRING元素时,会立即调用`kmemdup_nul`分配内存。若随后的`mechListMIC` [3]元素格式错误(如越界),解码器返回错误,导致`decode_negotiation_token`将`conn->use_spnego`设为false。然而,`smb2_sess_setup`中的清理代码仅当`use_spnego`为true时才释放`mechToken`,从而导致内存泄漏。由于该逻辑在认证前执行,攻击者可反复触发此漏洞导致DoS。