CVE-2026-31738Linux内核vxlan模块中的vxlan_na_create函数存在安全漏洞。该函数在处理邻居发现(ND)选项时,未正确验证选项长度。本地低权限攻击者可利用格式错误的恶意数据包,导致解析器访问超出计算范围的内存或读取过短的源LLADDR载荷,从而引发系统拒绝服务。
该漏洞源于Linux内核vxlan模块中vxlan_na_create()函数的实现缺陷。在构建VXLAN邻居通告(NA)消息时,函数需要解析ND选项以获取源链路层地址(LLADDR)。代码逻辑直接信任了ND选项头中声明的长度字段,并据此指针进行偏移运算和内存读取。如果攻击者发送特制的ND选项,将长度字段设置得过大或过小(小于以太网地址长度),vxlan_na_create()函数将读取超出预期缓冲区范围的数据,或者在解析LLADDR时访问无效内存地址。这种越界访问破坏了内核内存的安全性,导致内核异常终止(DoS)。由于攻击向量为本地(AV:L),攻击者需在目标系统上拥有低权限账号即可利用此漏洞提升影响至系统层面。修复补丁通过在解析前校验剩余选项空间长度以及LLADDR选项的最小尺寸来缓解此问题。