近日,安全圈被一枚潜伏长达13年的Linux内核漏洞搅动不安。该漏洞代号 OVSwrap(编号 CVE-2026-64531,CVSS评分7.8),存在于内核的 Open vSwitch(OVS)数据通路组件中。它允许任何普通本地用户,在绝大多数默认配置的 Linux 发行版上直接获得 root 权限。
这是一场由“逻辑错误”驱动的内存破坏——安全研究员 Asim Manizada 将其形容为“拥有逻辑漏洞级可靠性的内存破坏”。
罪魁祸首:一个被释放的“16位枷锁”
漏洞根源要追溯到 OVS 内核模块处理 Netlink 属性长度时的历史设计缺陷。内部动作流中,单个嵌套属性的长度字段仅有 16 位(最大 65535 字节)。但在早期代码中,内核会限制整个生成的动作流不超过 32 KiB,这个“隐形天花板”恰好掩盖了长度溢出的风险。
时间来到 2025 年 3 月,内核维护者为解决大型 OpenStack 环境中不可预测的故障,移除了这个 32 KiB 的限制。谁承想,这一看似合理的优化,直接让沉睡 13 年的长度溢出漏洞瞬间“可触发”。
攻击者只需提交一个包含数百个小型 conntrack 动作的合法 CLONE 动作,内核就会不断展开这些动作,直到生成的内部数据超过 65535 字节。此时,16 位的 nla_len 字段发生整数回绕,变为一个极小值。后续解析代码信任这个错误长度,从缓冲区中间位置继续解析——而 conntrack 数据中的标签和超时名称恰好由攻击者控制,伪造的动作头部可以精确布局在解析恢复点。
无需堆风水,无需内存 spraying,仅凭确定性偏移即可完成劫持。
权限突破三部曲:泄露、读取、提权
OVSwrap 的利用链展现出惊人的工程化程度,攻击者通过上述回绕可连续完成三个关键原语:
- 内核指针泄露:通过伪造的
OUTPUT 动作,获取关键内核结构地址,绕过 KASLR。
- 任意内核读取:利用伪造的隧道
SET 动作,越界读取敏感内存。
- 精确递减劫持:通过销毁伪造的隧道目标指针,对关键数据结构进行定向减一操作,最终修改当前进程的
uid/gid 为 0。
PoC(概念验证)会进一步篡改 /etc/sudoers 或相关配置,直接弹出 root shell。整个过程稳定、可重复,且为了稳定性,攻击完成后刻意保留进程和 OVS 状态,不做危险清理。
危险半径:几乎覆盖所有主流发行版
该漏洞最令人不安之处在于其极低的利用门槛:
- 攻击者不需要系统中存在已有的 OVS 网桥、不需要运行
ovs-vswitchd 守护进程,更不需要主机级别的 CAP_NET_ADMIN。
- 只需利用非特权用户命名空间(
unshare -Urn)创建新网络命名空间,即可在该命名空间内获得 CAP_NET_ADMIN 权限,从而创建私有 OVS 数据通路。
默认启用非特权用户命名空间的发行版全线告急。根据研究员公布的信息,以下发行版在默认配置下均可被成功利用(部分需特定绕过):
- Red Hat 系:AlmaLinux 8/9/10、CentOS Stream 9/10、Rocky Linux 9/10、Fedora 42~44
- Debian 系:Debian 12/13、Ubuntu 22.04(24.04 需 AppArmor 绕过,26.04 默认阻断但可关闭限制后利用)
- 其他:Arch、Alpine 3.22~3.24、Amazon Linux 2023、Kali 2026.1、Linux Mint 22.3、NixOS、openSUSE Tumbleweed、Pop!_OS
Ubuntu 24.04 通过 AppArmor 阻止直接命名空间创建,但 PoC 中已包含 aa-exec 备选绕过路径;Ubuntu 26.04 虽默认阻断,一旦管理员禁用 AppArmor 限制,同样沦陷。
紧急止血:补丁、屏蔽与应急 BPF
上游主线补丁已于 7 月 24 日合入稳定树,各大厂商正在加紧推送更新内核。如果你的系统尚未收到补丁,请根据场景立即采取措施:

资讯来源:本文基于安全研究员 Asim Manizada 公开的技术报告及 CVE-2026-64531 相关社区讨论整理编译。
关注云栈社区,第一时间获取深度安全漏洞解析。
|