CVE-2026-43241Linux内核中的ntb_hw_switchtec驱动程序存在一处数组越界访问漏洞。该漏洞产生的原因是内存窗口(MW)查找表的数量依赖于NTB配置,且可能被错误地设置为MAX_MWS。此补丁主要修复了对mw_sizes数组的无效索引越界访问问题。当检测到无效访问时,系统会向用户提示配置无效。由于攻击向量为本地且无需交互,低权限攻击者即可利用此漏洞,导致系统崩溃或敏感信息泄露,风险较高。
该漏洞技术细节涉及Linux内核中`drivers/ntb/hw/mscc/ntb_hw_switchtec.c`文件的逻辑缺陷。在Switchtec NTB硬件初始化或配置过程中,驱动程序需要访问`mw_sizes`数组以获取内存窗口的大小信息。然而,代码中缺少对数组索引有效性的严格校验。具体而言,当NTB配置允许的MW数量(LUTs)达到或超过预设的最大值MAX_MWS时,后续逻辑可能会生成一个等于或超过`mw_sizes`数组边界的索引值。由于驱动程序直接使用该索引访问数组,导致读取了数组之外的内存地址。这种越界读取可能泄露内核内存中的敏感数据(如指针、密钥等),破坏机密性;若该操作伴随写入或导致页错误,将引发内核恐慌,破坏可用性。攻击者需具备本地低权限账号,通过调用特定的NTB设备接口或ioctl命令即可触发该路径。修复方案是在数组访问前增加条件判断,确保索引严格小于最大允许值。