CVE-2026-31659Linux内核中的batman-adv模块存在严重安全漏洞。由于在处理全局翻译表(TT)响应时,使用16位变量计算分配长度,攻击者可发送特制的大尺寸数据包触发整数溢出。这导致内核分配过小内存,随后的数据写入引发堆溢出,可能造成系统崩溃或远程代码执行。
该漏洞源于batman-adv驱动中的batadv_tt_prepare_tvlv_global_data函数。该函数利用16位临时变量累加TT响应负载长度与VLAN头偏移量。当远程发起者广播的TT数据足够大(超过65535字节)时,计算结果会发生整数回绕。尽管kmalloc基于回绕后的错误小值分配内存,但后续填充tt_change时仍使用原始的大长度,导致向堆对象尾部越界写入。由于溢出早于数据包大小检查,攻击者无需认证即可利用此漏洞破坏内核内存,实现拒绝服务或潜在的权限提升。