CVE-2026-43141Linux内核中的ntb_hw_switchtec驱动程序存在一个高危安全漏洞,涉及移位越界问题。该漏洞源于驱动程序在处理MW LUT(查找表)数量时未进行零值检查。当NTB配置将LUT数量设置为0时,代码调用rounddown_pow_of_two函数会触发未定义行为。本地低权限攻击者可利用此缺陷导致内核崩溃或泄露敏感内存信息,严重影响系统可用性和机密性。
该漏洞位于Linux内核的`drivers/ntb/hw/switchtec.c`文件中。在初始化共享内存窗口(MW)时,代码调用`rounddown_pow_of_two(stdev->nr_direct_mw)`来对齐MW LUT的数量。`nr_direct_mw`的值直接来源于硬件配置,理论上可以合法地设置为0。然而,`rounddown_pow_of_two`函数在设计上并未妥善处理输入为0的情况。当输入为0时,内部的位运算操作(如fls(0)-1)会导致移位计数错误,引发“shift-out-of-bounds”异常,进而导致内核发生不可预期的行为。根据CVSS 3.1评分,该漏洞攻击复杂度低,无需用户交互,且具有本地攻击向量。攻击者只需具备低权限即可触发该逻辑错误,可能导致系统拒绝服务或读取内核内存数据。