IPBUF安全漏洞报告
English
CVE-2026-43385 CVSS 7.5 高危

CVE-2026-43385 Linux内核线程化轮询RCU停滞漏洞

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

漏洞信息

漏洞编号
CVE-2026-43385
漏洞类型
拒绝服务
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

Linux KernelDenial of ServiceRCUNetworkingRace ConditionHigh Severity

漏洞概述

Linux内核在网络子系统的线程化busypoll功能中存在一个漏洞。由于napi_threaded_poll_loop函数的实现逻辑错误,导致RCU(Read-Copy-Update)任务的grace period无法正常完成。这会触发RCU任务停滞检测,可能导致系统挂起、bpftrace等工具卡死或系统整体性能严重下降。

技术细节

该漏洞的根源在于Linux内核网络驱动中的NAPI(New API)线程化轮询机制。在启用threaded busypoll时,主循环位于napi_threaded_poll,而napi_threaded_poll_loop很少迭代。RCU机制依赖rcu_softirq_qs_periodic定期报告Quiescent State (QS),这要求last_qs时间戳与当前jiffies的差值至少为100ms。然而,由于napi_threaded_poll_loop每次被调用时都会将last_qs重置为最新的jiffies,导致时间间隔条件永远无法满足,从而使RCU grace period无限期等待,最终触发内核stall警告和拒绝服务。

攻击链分析

STEP 1
步骤1
攻击者确认目标系统运行受影响的Linux内核版本,并拥有网络访问权限。
STEP 2
步骤2
攻击者诱导系统管理员或通过配置脚本启用线程化busypoll功能(例如设置net.core.busy_poll)。
STEP 3
步骤3
系统产生网络流量,激活NAPI线程化轮询机制。
STEP 4
步骤4
由于napi_threaded_poll_loop逻辑缺陷,RCU grace period无法完成,触发内核stall。
STEP 5
步骤5
系统出现监控任务挂起(如bpftrace)或系统响应迟缓,导致拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC Concept for CVE-2026-43385 * Triggering the RCU stall requires enabling threaded busy poll. * This is a kernel module snippet to demonstrate the enabling logic. */ #include <linux/module.h> #include <linux/kernel.h> #include <net/busy_poll.h> static int __init init_poc(void) { printk(KERN_INFO "CVE-2026-43385: Attempting to trigger RCU stall conditions.\n"); // Real-world trigger: // 1. Enable threaded NAPI on the NIC. // 2. Enable busy_poll via sysctl: sysctl -w net.core.busy_poll=50 // 3. Generate sufficient network traffic to keep NAPI active. // 4. Observe dmesg for rcu_tasks_wait_gp stall warnings. return 0; } static void __exit exit_poc(void) { printk(KERN_INFO "CVE-2026-43385: Exiting.\n"); } module_init(init_poc); module_exit(exit_poc); MODULE_LICENSE("GPL");

影响范围

Linux Kernel < 6.6 (具体版本需参考Git Commit 1a86a1f7d88996085934139fa4c063b6299a2dd3)

防御指南

临时缓解措施
临时缓解措施包括禁用线程化busypoll功能。可以通过修改sysctl参数(例如将net.core.busy_poll设置为0)或调整网卡驱动配置来关闭该特性,以防止RCU停滞发生。

参考链接