CVE-2026-43376Linux内核ksmbd模块存在释放后重用漏洞。该模块在释放oplock_info结构体时未遵循RCU机制,直接调用kfree()释放了正在被RCU读端临界区访问的内存。由于缺少宽限期,读端代码可能访问已释放内存。攻击者可利用此漏洞造成内核崩溃或提权,CVSS 9.8分,危害严重。
漏洞发生于Linux内核的ksmbd驱动程序中,该驱动实现了SMB3文件服务器协议。在处理oplock(机会锁)信息时,代码使用了RCU(Read-Copy-Update)机制来保护并发访问,允许无锁读取。然而,oplock_info的释放逻辑存在严重缺陷:代码直接使用kfree()立即释放内存,而没有使用call_rcu()进行延迟释放。这导致在RCU读端临界区(如opinfo_get()函数和proc_show_files())仍在访问该结构体时,内存已被释放。特别是当atomic_inc_not_zero()操作作用于已释放的内存区域时,触发释放后重用(UAF)。鉴于该漏洞通过网络(AV:N)触发且无需认证(PR:N),远程未授权攻击者可利用此竞争条件导致系统崩溃(拒绝服务)或潜在的任意内核代码执行,控制目标主机。