更多安全资讯和分析文章请关注启明星辰ADLab微信公众号及官方网站(adlab.venustech.com.cn)
Open vSwitch(OVS)是Linux内核网络子系统的开源虚拟交换平台,在云计算与容器化环境中承担着SDN数据平面的枢纽角色,广泛用于支撑多租户网络隔离与跨主机Overlay通信。OVS的数据平面以内核模块形式运行,负责报文的高速查找与转发,而控制平面则由用户态进程承载,通过配置下发实现对数据平面行为的动态编排。其关键特性在于,用户态下发的流表动作序列需经由内核模块的严格解析与重组,转换为内部优化的sw_flow_actions表示后方可挂载执行。
Linux内核Open vSwitch本地提权漏洞(CVE-2026-64531)于2026年7月27日公开,CVSS 3.1评分为7.8分。该漏洞源于Open vSwitch内核模块在处理Netlink消息中的嵌套actions时,未对nla_len字段进行有效边界校验,导致攻击者可通过特制的超大嵌套长度触发整型截断与错位解析,获取内核内存操作原语,继而破坏进程凭证或篡改sudoers配置,实现本地提权至root。
根据FOFA查询数据,截至2026年8月6日,互联网上存在48,163,743个潜在的易受攻击Linux相关资产。由于该漏洞技术细节已在互联网公开,攻击利用可能性较高,对于使用该服务的组织来说构成了直接且严重的风险。
(1)已确认受影响的内核版本
5.15.180 <= Linux Kernel (5.15 分支) < 5.15.212
6.1.132 <= Linux Kernel (6.1 分支) < 6.1.178
6.6.84 <= Linux Kernel (6.6 分支) < 6.6.145
6.12.20 <= Linux Kernel (6.12 分支) < 6.12.97
6.13.8 <= Linux Kernel (6.13 分支) <= 6.13.12(该分支已停止维护,无修复版本)
6.14 <= Linux Kernel (6.14 至 6.17 分支) <= 6.17(所有版本均受影响,已停止维护,无修复版本)
6.18.0 <= Linux Kernel (6.18 分支) < 6.18.40
Linux Kernel 6.19(所有正式版本均受影响,已停止维护,无修复版本)
Linux Kernel 7.0(所有正式版本均受影响,已停止维护,无修复版本)
7.1.0 <= Linux Kernel (7.1 分支) < 7.1.5
Linux Kernel 主线版本 < 7.2-rc4(自 7.2-rc4 起修复)
(2)已确认受影响的操作系统发行版本
AlmaLinux 9.7、9.8、10.1、10.2
Alpine Linux 3.22、3.23、3.24
Amazon Linux 2023
Arch Linux
CentOS Stream 9、10
Debian 12、13
Fedora 40、41、42、43、44
Kali Linux 2026.1
Linux Mint 22.3
NixOS 24.11、25.05、25.11、26.05
openSUSE Tumbleweed
Pop!_OS 22.04、24.04
Rocky Linux 9、10
Ubuntu 22.04(Desktop 和 Server)、Ubuntu 24.04(Desktop 和 Server)
CVE-2026-64531是Linux内核Open vSwitch(OVS)datapath子系统中的一个本地权限提升漏洞。OVS将用户空间提交的action列表校验并重写为更大的内部sw_flow_actions流,内部action以Netlink属性存储,其nla_len字段仅16位。由于2025年3月移除了旧的32 KiB总action流上限,单个嵌套action(如CLONE)可膨胀超过65535字节,add_nested_action_end()回填长度时发生16位整数回绕,导致后续dump/free消费方信任回绕后的短长度而解析失步。攻击者可借此构造内核指针泄漏、任意内核读与定向32位递减原语,破坏宿主进程cred中的fsuid/fsgid并写入免密sudo规则,最终以普通用户身份获取root权限。该漏洞位于Linux内核Open vSwitch数据路径的flow action生成与解析路径中,核心代码文件为net/openvswitch/flow_netlink.c。OVS内核模块在处理用户态下发的action列表时,会通过ovs_nla_copy_actions()对其进行校验并重写为更大的内部表示sw_flow_actions流。其中每个Netlink属性的长度字段nla_len被定义为16位无符号整数,理论上限为65535字节。2025年3月,一次修改移除了内部action流总长度的32KiB上限,但并未同步引入针对单个嵌套action的长度上限检查,reserve_sfa_size()对累计长度只增不减:

这导致攻击者可以通过CLONE嵌套大量小型conntrack action,使生成的嵌套action总长度超过65535字节:

而由于代码在回填nla_len时直接将实际长度写入该16位字段,发生整数回绕:

由于回绕后的长度与实际缓冲区长度严重失配,后续内核的dump和free路径在解析该伪造的嵌套action时会从攻击者可控的conntrack label或timeout name的中间位置继续解析,将伪造的字节识别为合法的OUTPUT、SET等action。利用这种错位解析,攻击者可逐步构建出三个利用原语:
通过伪造的OUTPUT action泄露内核指针以获取内核基址。
通过伪造的SET action使内核解引用攻击者可控的指针,实现任意内核地址读取。
通过伪造的SET action配合dst_release()释放路径,对任意内核地址的32位值执行定向递减。
借助这三个原语,攻击者可定位宿主机上某个进程的cred结构体,将其fsuid和fsgid从普通用户ID逐次递减至0(root),随后该进程以root身份向/etc/sudoers.d/写入免密sudo规则,执行sudo -n bash即可获得root shell。


(1)官方安全更新(推荐):
该漏洞已在主线内核 7.2-rc4 及以下稳定分支中修复,请根据当前内核版本,统一升级至对应的修复版本。
5.15 分支:升级至 5.15.212 及以上版本
6.1 分支:升级至 6.1.178 及以上版本
6.6 分支:升级至 6.6.145 及以上版本
6.12 分支:升级至 6.12.97 及以上版本
6.18 分支:升级至 6.18.40 及以上版本
7.1 分支:升级至 7.1.5 及以上版本
注意:6.13、6.14~6.17、6.19、7.0分支已停止维护,官方未提供修复版本,建议迁移至受支持的内核分支。
(2)临时缓解措施:
在无法立即升级内核的环境中,可参考以下临时缓解方案:
[1] https://nvd.nist.gov/vuln/detail/CVE-2026-64531
[2] https://heyitsas.im/posts/ovswrap/
[3] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3f1f755366687d051174739fb99f7d560202f60b
ADLab成立于1999年,是中国安全行业最早成立的攻防技术研究实验室之一,微软MAPP计划核心成员,“黑雀攻击”概念首推者。截至目前,ADLab已通过 CNVD/CNNVD/NVDB/CVE累计发布安全漏洞7000余个,持续保持国际网络安全领域一流水准。实验室研究方向涵盖基础安全研究、电信运营商基础设施安全研究、移动终端安全研究、云安全研究、信创安全研究、物联网安全研究、车联网安全研究、工控安全研究、数据安全研究、5G安全研究、AI安全研究、卫星安全研究、低空安全研究、高级威胁研究、攻防体系建设。研究成果应用于产品核心技术研究、国家重点科技项目攻关、专业安全服务等。