IPBUF安全漏洞报告
English
CVE-2026-43296 CVSS 7.5 高危

CVE-2026-43296 Linux内核octeontx2驱动拒绝服务漏洞

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

漏洞信息

漏洞编号
CVE-2026-43296
漏洞类型
拒绝服务
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

拒绝服务Linux KernelHardware Errataocteontx2DoSCVE-2026-43296

漏洞概述

该漏洞存在于Linux内核的octeontx2-af驱动模块中。由于NIX SQ管理器的sticky模式在多个SQ共享SMQ并发传输时会导致停滞,且PSE在sticky和非sticky传输切换期间可能发生死锁,同时在特定条件下时钟门控会导致信用计数丢失。攻击者可利用这些硬件设计缺陷触发网络接口传输停滞,从而导致系统拒绝服务。修复方案是通过修改NIX_AF_SQM_DBG_CTL_STATUS寄存器,禁用sticky操作及死锁路径,并保持控制流时钟开启,以规避硬件Errata。

技术细节

此漏洞源于Marvell OcteonTX2 SoC系列网络接口控制器的硬件设计缺陷。具体而言,NIX发送队列(SQ)管理器的“sticky”模式本用于优化性能,但在高并发场景下会导致队列停滞。此外,物理层(PSE)在处理sticky到非sticky传输状态切换时存在死锁风险,且在特定时钟门控条件下会发生信用计数器下降问题。在技术实现上,该漏洞通过读写 `NIX_AF_SQM_DBG_CTL_STATUS` 寄存器进行缓解。修复代码清除了TM6(bit 15)和TM11(bit 14)以禁用SQM sticky操作;清除TM5(bit 23)以禁用可能导致PSE死锁的转换路径;同时设置TM9(bit 21)以保持控制流时钟开启,防止信用丢失。这些更改虽然禁用了sticky优化,但解决了硬件导致的死锁和数据传输中断问题。

攻击链分析

STEP 1
步骤1:侦察
攻击者识别目标系统运行受影响的Linux内核版本,并确认使用了OcteonTX2系列网卡及octeontx2-af驱动。
STEP 2
步骤2:触发漏洞
攻击者发送特制的网络数据包流,制造多个SQ(Send Queue)共享SMQ(Scheduler Management Queue)并高并发传输的场景,或触发sticky与非sticky模式的频繁切换。
STEP 3
步骤3:利用与影响
触发硬件Errata,导致NIX SQM管理器停滞或PSE死锁,同时可能伴随信用丢失。结果导致网络接口停止转发数据包,系统发生拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC / Workaround Code for CVE-2026-43296 * This code demonstrates the register manipulation required to mitigate * the SQM/PSE stalls in the octeontx2-af driver. */ #include <linux/io.h> #include <linux/types.h> #define NIX_AF_SQM_DBG_CTL_STATUS 0x0 void apply_octeontx2_workaround(void __iomem *base) { u64 val; // Read current register value val = readq(base + NIX_AF_SQM_DBG_CTL_STATUS); // Workaround for hardware errata: // 1. Disable SQM sticky operation (Clear TM6 bit 15 and TM11 bit 14) val &= ~(BIT(15) | BIT(14)); // 2. Disable sticky -> non-sticky transition path to prevent PSE deadlock (Clear TM5 bit 23) val &= ~BIT(23); // 3. Prevent credit drops by keeping control-flow clock enabled (Set TM9 bit 21) val |= BIT(21); // Apply the configuration writeq(val, base + NIX_AF_SQM_DBG_CTL_STATUS); } // Note: This is the kernel patch logic. To verify the vulnerability, // one would need to reverse these bits on affected hardware and // generate high network traffic to trigger the stall.

影响范围

Linux Kernel (参考Git Stable分支修复提交)

防御指南

临时缓解措施
建议立即更新Linux内核以应用针对NIX_AF_SQM_DBG_CTL_STATUS寄存器的修复代码。如果无法立即重启更新,应尽量限制网卡的高并发负载,减少多SQ共享SMQ的场景,以降低触发硬件停滞和死锁的风险,直到完成补丁应用。

参考链接