CVE-2026-43379Linux内核中的ksmbd模块存在一个严重的释放后重用漏洞。该漏洞发生在`smb_lazy_parent_lease_break_close`函数中,由于在调用`rcu_read_unlock()`之后仍然访问`opinfo`指针,导致竞态条件。攻击者可利用此条件在内存被释放后进行访问,从而可能导致内核崩溃或权限提升。该漏洞CVSS评分高达9.8,无需用户交互即可通过网络被利用,对系统的机密性、完整性和可用性构成极高威胁。
该漏洞的核心在于Linux内核ksmbd组件对RCU(Read-Copy-Update)锁机制的不当使用。在函数`smb_lazy_parent_lease_break_close`中,代码首先通过`rcu_dereference(fp->f_opinfo)`获取了`opinfo`指针。随后,在调用了`rcu_read_unlock()`释放读锁之后,代码继续对该指针进行解引用操作(例如访问`opinfo->is_lease`)。此时,由于读锁已释放,另一个并发的写入线程可能已经将该内存区域释放并重新分配。因此,后续的指针访问实际上是在操作已释放的内存,即典型的释放后重用(UAF)。攻击者可以通过构造特制的SMB数据包触发该竞态条件,进而控制内核执行流,实现拒绝服务攻击或潜在的内核级代码执行。