IPBUF安全漏洞报告
English
CVE-2026-23441 CVSS 4.7 中危

CVE-2026-23441: Linux内核net/mlx5e竞态条件漏洞

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

漏洞信息

漏洞编号
CVE-2026-23441
漏洞类型
竞态条件
CVSS评分
4.7 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

竞态条件Linux内核DoSnet/mlx5eIPSec本地漏洞

漏洞概述

Linux内核net/mlx5e驱动存在竞态条件漏洞。该驱动使用单一共享DMA上下文处理IPSec ASO操作,由于锁在硬件完成处理前释放,并发操作会覆盖共享内存。导致后续读取损坏上下文,引发系统异常行为或结果错误。攻击者需本地低权限即可触发,主要影响系统可用性。

技术细节

漏洞位于Linux内核net/mlx5e驱动程序中的IPSec ASO(访问统计对象)模块。驱动通过Access ASO WQE指令与硬件交互,并为每个物理功能(PF)分配了单一的mlx5e_ipsec_aso结构体,其中包含一个共享的DMA映射上下文。核心缺陷在于ASO自旋锁的释放时机不当:锁在WQE指令提交给硬件后立即释放,而非等待硬件实际完成处理。若此时并发发起第二个ASO操作,新的指令将覆盖DMA区域中的共享上下文。当第一个操作的完成信号到达时,驱动程序读取的是已被覆盖的脏数据,导致上下文损坏。修复方案是在每个IPSec卸载对象中引入私有上下文副本,确保数据一致性。此漏洞需本地低权限用户触发,可能导致系统不稳定或拒绝服务。

攻击链分析

STEP 1
步骤1:本地访问
攻击者获得目标系统的本地低权限用户访问权限。
STEP 2
步骤2:并发触发
攻击者运行恶意程序,并发触发IPSec ASO操作(例如快速添加或删除安全关联)。
STEP 3
步骤3:上下文损坏
由于自旋锁释放过早,第二个操作在硬件处理完第一个操作前覆盖了共享的DMA上下文。
STEP 4
步骤4:系统异常
驱动程序读取被破坏的上下文数据,导致内核逻辑错误,引发拒绝服务或系统崩溃。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#include <pthread.h> #include <unistd.h> // Conceptual PoC for triggering the race condition // Requires a vulnerable Linux kernel with mlx5 hardware void *trigger_aso_update(void *arg) { // Simulate rapid IPSec SA updates that hit the ASO context for (int i = 0; i < 1000; i++) { // In a real exploit, this invokes netlink/ioctl to update IPSec state // Example: ip xfrm state update ... usleep(1); } return NULL; } int main() { pthread_t t1, t2; // Create two threads to race on the shared ASO context pthread_create(&t1, NULL, trigger_aso_update, NULL); pthread_create(&t2, NULL, trigger_aso_update, NULL); pthread_join(t1, NULL); pthread_join(t2, NULL); return 0; }

影响范围

Linux Kernel (Versions containing vulnerable net/mlx5e driver prior to fix commits)

防御指南

临时缓解措施
如果无法立即升级内核,建议暂时禁用Mellanox网卡上的IPSec硬件卸载功能以缓解风险。

参考链接

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