CVE-2025-71152CVE-2025-71152是Linux内核中net: dsa模块的一个高危安全漏洞,CVSS评分7.8。该漏洞源于DSA(分布式交换架构)在处理conduit网络设备的引用计数时存在两个关键缺陷:首先,OF路径使用of_find_net_device_by_node()后从未释放对conduit的kobject引用计数,导致内存泄漏;其次,在找到conduit接口后,该接口可能随时被注销,但DSA仍保留着过时的cpu_dp->conduit指针,造成悬空指针风险。攻击者可通过本地低权限账户触发此漏洞,最终实现权限提升,获取系统高权限。由于问题涉及内核级别的引用管理,攻击复杂度较低,无需用户交互即可利用。
该漏洞涉及Linux内核DSA模块中conduit网络设备的引用处理机制,存在两个独立但相关的问题。第一,OF(Open Firmware)探测路径使用of_find_net_device_by_node()函数获取conduit设备后,从未调用put_device()释放对kobject的引用计数,导致引用计数异常增加。这与dsa_dev_to_net_device()函数形成对比,后者正确包含了put_device()调用。通过启用CONFIG_DEBUG_KOBJECT_RELEASE=y可以观察到unbind操作后的kobject_release延迟调用,证明确实存在内存泄漏。第二,更严重的是,在of_find_net_device_by_node()和用户端口创建之间存在时间窗口,期间conduit可能已被注销,但DSA仍持有指向已不存在设备的cpu_dp->conduit指针。正确的修复方案是在of_find_net_device_by_node()调用时持有rtnl_lock()锁以防止conduit注销,并使用dev_hold()/dev_put()机制管理netdev引用计数,而非依赖kobject引用。攻击者可通过在支持DSA的系统上执行特定操作序列触发漏洞利用。