CVE-2026-23001CVE-2026-23001是Linux内核macvlan驱动程序中的一个高危安全漏洞,CVSS评分7.8。该漏洞存在于macvlan_forward_source()函数中,由于缺乏RCU(Read-Copy-Update)保护机制,导致潜在的UAF(释放后重用)条件。当macvlan_hash_del_source()被调用时,entry->vlan指针未能在RCU宽限期开始前被正确清除,使得macvlan_forward_source()可能访问到正在等待释放的内存条目。本地攻击者可通过构造特定的网络流量触发此漏洞,在低权限情况下实现内核级代码执行,最终可能导致系统完全沦陷。该漏洞影响所有使用macvlan模块的Linux系统,攻击复杂度低,无需用户交互即可利用。
漏洞根源在于macvlan驱动中struct macvlan_source_entry结构体的vlan指针缺乏RCU保护。具体表现为:macvlan_hash_del_source()函数在删除源条目时,未能在RCU宽限期开始前将entry->vlan指针置空。这导致macvlan_forward_source()函数在遍历哈希表时,可能访问到已被标记删除但尚未实际释放内存的条目。攻击者可通过创建大量macvlan设备并快速切换网络配置,触发竞态条件。当RCU回调执行并释放entry内存后,之前保存的vlan指针将成为悬空指针。攻击者利用此UAF漏洞可实现任意内核内存读写,最终完成权限提升。修复方案是在macvlan_hash_del_source()中添加rcu_assign_pointer()和synchronize_rcu()调用,确保在内存释放前清除所有引用。