CVE-2026-31477Linux内核ksmbd模块在处理SMB2锁请求时存在内存泄漏和空指针解引用漏洞。攻击者可通过网络发送特制请求,触发smb2_lock()函数的错误处理缺陷,导致内存资源耗尽或内核崩溃,从而造成拒绝服务攻击。
该漏洞位于Linux内核ksmbd子系统的smb2_lock()函数中。问题主要出现在错误处理逻辑上:1. 在非UNLOCK路径中,若vfs_lock_file()返回意外错误,由于list_del()已将smb_lock从链表分离,导致out标签处的清理代码无法释放该内存,造成内存泄漏;2. UNLOCK路径中返回-ENOENT时,同样导致内存泄漏且错误码未更新;3. 在回滚路径中,smb_flock_init()分配内存失败返回NULL时,代码未检查直接解引用,触发内核NULL指针解引用。攻击者无需认证即可通过网络利用此漏洞。