IPBUF安全漏洞报告
English
CVE-2025-71097 CVSS 5.5 中危

CVE-2025-71097 Linux内核ipv4错误路由引用计数泄露漏洞

披露日期: 2026-01-13
来源: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

漏洞信息

漏洞编号
CVE-2025-71097
漏洞类型
资源泄露/引用计数泄漏
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel (ipv4 networking, nexthop objects)

相关标签

Linux内核引用计数泄露nexthopipv4错误路由资源泄露网络设备fib_table_flush

漏洞概述

CVE-2025-71097是Linux内核中一个中等严重程度的资源泄露漏洞,位于IPv4网络协议的路由处理模块。该漏洞源于nexthop对象删除时,错误路由(如blackhole路由)未被正确刷新,导致引用计数泄露。当nexthop对象被删除时,系统会将其标记为dead状态并调用fib_table_flush()函数刷新使用该nexthop的所有路由。然而,当前的实现逻辑仅在网络命名空间销毁(flush_all=true)时才会刷新错误路由。因此,当nexthop对象被单独删除时,关联的错误路由不会被清除,继续持有对nexthop对象的引用,进而持有对nexthop设备的引用。这会导致设备无法正常注销,出现"waiting for device to become free"的错误提示。该漏洞影响本地低权限用户,可造成可用性下降(设备无法释放)。IPv6协议不受此问题影响。

技术细节

该漏洞的技术根源在于fib_table_flush()函数的条件判断逻辑。当nexthop对象被删除时,系统调用fib_table_flush()并传入flush_all=false(表示非命名空间销毁场景),此时函数中的条件判断会跳过错误路由的刷新操作。具体问题流程如下:1) 用户创建dummy网络接口和nexthop对象;2) 通过nexthop ID创建普通路由和blackhole错误路由;3) 删除nexthop对象时,系统标记其为dead并刷新路由;4) 由于flush_all=false,错误路由未被刷新;5) 错误路由仍持有nexthop对象引用,nexthop对象持有设备引用;6) 删除设备时发现引用计数为2(应为0),导致unregister_netdevice()等待超时。修复方案是在nexthop被标记为dead时,同样刷新关联的错误路由,确保所有引用被正确释放。

攻击链分析

STEP 1
步骤1
攻击者创建虚拟网络接口dummy1并启用
STEP 2
步骤2
攻击者创建指向dummy1的nexthop对象(id=1)
STEP 3
步骤3
攻击者添加普通路由198.51.100.1/32使用该nexthop
STEP 4
步骤4
攻击者添加blackhole错误路由198.51.100.2/32使用同一nexthop
STEP 5
步骤5
攻击者删除nexthop对象,触发引用计数泄露(错误路由未被刷新)
STEP 6
步骤6
尝试删除dummy1接口时,内核检测到引用计数异常(值为2),设备无法释放

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC for CVE-2025-71097 - Reference count leak when deleting nexthop with error routes # Create a dummy network interface ip link add name dummy1 up type dummy # Create a nexthop object pointing to dummy1 ip nexthop add id 1 dev dummy1 # Add a normal route using the nexthop ip route add 198.51.100.1/32 nhid 1 # Add a blackhole (error) route using the same nexthop ip route add blackhole 198.51.100.2/32 nhid 1 # Delete the nexthop object - this triggers the leak ip nexthop del id 1 # Check routes - blackhole route still exists ip route show # Output shows: blackhole 198.51.100.2 nhid 1 dev dummy1 # Try to delete the dummy interface - will hang due to reference count leak ip link del dev dummy1 # Expected kernel message: # [ 70.516258] unregister_netdevice: waiting for dummy1 to become free. Usage count = 2

影响范围

Linux Kernel < 5.15.x (specific commits needed)
Linux Kernel < 6.1.x
Linux Kernel < 6.6.x
Linux Kernel < 6.12.x

防御指南

临时缓解措施
如果无法立即升级内核,可采取以下临时缓解措施:1) 避免在删除nexthop对象前创建使用该nexthop的错误路由;2) 在删除nexthop前手动删除所有关联的错误路由(ip route del blackhole <prefix> nhid <id>);3) 监控网络命名空间中的nexthop对象和路由状态,确保正确清理;4) 限制低权限用户创建网络接口和nexthop对象的权限。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表