CVE-2026-31464Linux内核中的ibmvfc驱动程序存在越界访问漏洞。在处理来自VIO服务器的发现目标MAD响应时,攻击者可以操纵返回的`num_written`值,使其超过`max_targets`限制。由于缺乏验证,该值被直接用作循环边界来访问`disc_buf`数组,导致越界读取内核内存。泄露的敏感数据随后被嵌入发送回VIO服务器的消息中,造成严重的信息泄露风险。
该漏洞位于`ibmvfc_discover_targets_done`函数中,主要影响运行在Power架构上的Linux系统。漏洞原理是驱动程序在处理虚拟I/O(VIO)服务器返回的数据时,未对`num_written`字段进行边界检查。恶意或受损的VIO服务器可以返回一个大于预分配缓冲区大小`max_targets`的值。驱动程序直接将该值存储并用于`ibmvfc_alloc_targets`函数中的循环边界。循环在访问`disc_buf`数组时,由于索引值超出合法范围,读取了DMA一致性分配区域之外的内核内存。随后,这些越界获取的内核数据被包含在Implicit Logout和PLOGI MAD响应中发送回攻击者。这使得攻击者能够读取内核敏感信息,破坏内存保密性。