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

CVE-2026-43410 Linux内核stratix10-rsu空指针解引用漏洞

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

漏洞信息

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

相关标签

Linux KernelNULL Pointer DereferenceDoSStratix10Firmware

漏洞概述

该漏洞存在于Linux内核的stratix10-rsu驱动程序中。当远程系统更新(RSU)功能在第一阶段引导加载程序(FSBL)中被禁用时,驱动程序的探测函数会在消息发送失败后释放通信通道,但未能正确终止后续流程。随后注册的线程尝试访问已被释放的通道指针,导致空指针解引用错误。本地低权限攻击者可利用此漏洞触发内核恐慌,造成系统拒绝服务。

技术细节

漏洞位于Linux内核的驱动代码中。在`rsu_probe`函数执行期间,如果固件层面的RSU未启用,`rsu_send_async_msg`函数会调用失败并触发错误处理路径。此时,代码通过`stratix10_svc_free_channel`释放了通道资源,但未立即返回错误状态,而是继续向下执行并注册了`svc_normal_to_secure_thread`内核线程。当该线程被调度执行并尝试访问已释放的通道结构体成员时,由于指针悬空,系统触发内核NULL指针解引用异常(Kernel Oops),导致系统崩溃或重启。攻击向量为本地,且无需用户交互,仅需低权限即可触发。

攻击链分析

STEP 1
步骤1:获取访问权限
攻击者获得目标Linux系统的本地低权限用户访问权限。
STEP 2
步骤2:触发驱动加载
系统启动时自动加载stratix10-rsu驱动,或攻击者通过insmod等工具手动加载内核模块。
STEP 3
步骤3:探测失败与资源释放
由于FSBL中未启用RSU,驱动初始化失败,释放了svc通道资源。
STEP 4
步骤4:竞态与空指针访问
驱动错误地继续注册并运行 svc_normal_to_secure_thread 线程,该线程尝试访问已释放的内存地址。
STEP 5
步骤5:系统崩溃
触发内核NULL指针解引用,导致内核恐慌,系统重启或服务拒绝。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC for CVE-2026-43410: Kernel NULL Pointer Dereference * Context: This vulnerability triggers during the driver probe phase * if RSU is disabled in FSBL. * * Note: This is a conceptual representation of the vulnerable logic. * Actual exploitation requires specific hardware (SoCFPGA Stratix 10) * and kernel configuration. */ #include <stdio.h> #include <stdlib.h> // Simulating the kernel channel structure struct svc_channel { void *data; }; // Simulating the vulnerable thread function void vulnerable_thread(struct svc_channel *chan) { printf("[+] Thread started, accessing channel..."); // The crash happens here because chan was freed but the thread still runs if (chan->data == 0x0) { // Simulating access at offset 0x00 or 0x08 printf("CRASH: NULL Pointer Dereference!\n"); // In real kernel: Oops: 0000000096000004 } } int main() { struct svc_channel *chan = malloc(sizeof(struct svc_channel)); chan->data = NULL; // Simulate Probe Failure printf("[*] Probe failed, freeing channel..."); free(chan); chan = NULL; // Logic bug: The cleanup didn't stop the thread registration // Simulate Thread Execution (UAF) // In the real bug, the thread continues to run with the old pointer value // stored in a global or closure that wasn't cleared. struct svc_channel *dangling_ptr = (struct svc_channel *)0xdeadbeef; // Simulation printf("[-] System Panic triggered.\n"); return 0; }

影响范围

Linux Kernel < 6.19-rc8 (需查看具体commit修复情况)

防御指南

临时缓解措施
在内核启动配置中禁用strat10-rsu驱动模块,或者确保在First Stage Boot Loader (FSBL)中正确启用Remote System Update (RSU)功能以规避该错误路径。

参考链接

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