IPBUF安全漏洞报告
English
CVE-2026-23336 CVSS 7.8 高危

CVE-2026-23336 Linux内核cfg80211释放后重用漏洞

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

漏洞信息

漏洞编号
CVE-2026-23336
漏洞类型
释放后重用 (UAF)
CVSS评分
7.8 高危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

UAFLinux KernelDoS本地提权cfg80211Wi-Fi

漏洞概述

Linux内核中的cfg80211组件存在释放后重用(UAF)漏洞。该漏洞源于在wiphy注销时未取消rfkill_block工作项,导致工作队列在设备注销后仍试图访问已释放的内存。攻击者可利用此漏洞造成系统崩溃(DoS)或潜在的权限提升。此问题由Syzkaller发现,CVSS v3.1评分为7.8,属于高危漏洞。

技术细节

漏洞发生在Linux内核无线配置子系统的`wiphy_unregister()`流程中。当无线设备被移除或注销时,系统未能取消挂起的`rfkill_block`工作。由于工作队列的异步特性,如果该工作在wiphy结构体释放后执行,`cfg80211_rfkill_block_work`函数会调用`cfg80211_shutdown_all_interfaces()`,进而访问已释放的内存地址。这触发了KASAN检测到的Use-After-Free错误。攻击者需具备本地低权限,通过特定操作触发设备注销与rfkill事件的竞态条件,破坏内核内存完整性。尽管主要表现为内核崩溃,但在特定条件下,该类型的内存损坏可被进一步利用于提权。

攻击链分析

STEP 1
步骤1
攻击者获取本地系统的低权限访问权限(PR:L)。
STEP 2
步骤2
攻击者触发无线设备的rfkill阻塞事件,将`rfkill_block`工作加入工作队列等待执行。
STEP 3
步骤3
在`rfkill_block`工作执行前,攻击者利用竞态条件触发无线接口的注销操作(`wiphy_unregister`),导致相关内存被释放。
STEP 4
步骤4
`cfg80211_rfkill_block_work`工作随后执行,调用`cfg80211_shutdown_all_interfaces`访问已释放的内存地址。
STEP 5
步骤5
触发内核Use-After-Free错误,导致系统崩溃(DoS)或潜在的内核代码执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC for CVE-2026-23336 (Conceptual) * This code attempts to trigger the race condition between * wiphy_unregister and cfg80211_rfkill_block_work. * Requires a vulnerable Linux kernel version. */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/socket.h> #include <linux/netlink.h> // Simulate triggering the rfkill block work void trigger_rfkill_work() { // In a real scenario, this interacts with rfkill subsystem system("rfkill block wifi"); } // Simulate the unregister sequence that exposes the UAF void trigger_unregister_sequence() { // Malicious interaction with cfg80211 to force unregister // while work is pending. printf("Triggering wiphy unregister race...\n"); // Implementation would involve specific netlink messages // or ioctl calls to the wireless driver. } int main() { printf("Starting PoC for CVE-2026-23336...\n"); // Fork to increase likelihood of race condition if (fork() == 0) { while(1) { trigger_rfkill_work(); usleep(100); } } else { while(1) { trigger_unregister_sequence(); usleep(100); } } return 0; }

影响范围

Linux Kernel < 6.19-rc2
Linux Kernel stable branches (prior to specific commits)

防御指南

临时缓解措施
建议立即应用官方提供的补丁,在`wiphy_unregister()`函数中取消`rfkill_block`工作。如果无法立即升级内核,应暂时禁用无线网络功能或严格限制本地用户权限,以降低被利用的风险。

参考链接

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