CVE-2026-31444Linux内核中的ksmbd模块在处理SMB协议oplock请求时存在严重漏洞。由于在发布oplock信息时顺序不当,若内存分配失败或发生并发访问,可能导致释放后重用或空指针解引用。攻击者无需认证即可利用此漏洞通过网络触发,导致系统崩溃或潜在的权限提升。
该漏洞位于`ksmbd`驱动的`smb_grant_oplock()`函数中,涉及两个竞态条件问题。首先,`opinfo`被添加到`ci->m_op_list`后,若后续`add_lease_global_list`因内存分配失败,错误处理路径会释放该结构体,但并未从列表中移除,导致其他线程访问已释放内存(释放后重用)。其次,`opinfo->o_fp`指针在全局列表发布后才赋值,导致并发调用`find_same_lease_key`时可能解引用空指针。攻击者可通过特制的SMB网络数据包触发这些竞态条件,无需认证即可远程导致内核崩溃。