Linux 内核 IPv4 数据包处理中的一个漏洞被公开,编号 CVE-2026-99999,研究者将其命名为 PwnEscape。该漏洞允许客户机虚拟机攻击其所在的宿主机,可造成宿主机内存泄露、崩溃,研究者在自有实验环境中还实现了以 root 权限在宿主机执行代码。内核 CVE 团队给出 CVSS 3.1 9.3 分,评级为严重;Red Hat 则评为 Important(8.8)。
修复自 10 月 15 日起随多个稳定版内核发布,Red Hat、AlmaLinux、Debian 已推出补丁,Ubuntu 截至 10 月 31 日仍未发布修复,其 22.04 及之后版本的修复处于进行中。漏洞代码可追溯至 2008 年的 Linux 2.6.27,影响范围覆盖几乎所有 Linux 宿主机。
漏洞成因与影响
问题出在宿主机内核的 IPv4 网络栈,而非 KVM 本身。Linux 支持一种名为校验和卸载的性能特性,允许数据包先携带待填写的校验和,并附带两个提示:校验和计算从何处开始、结果写到何处。使用 virtio 网卡的客户机虚拟机可以把这些提示连同数据包一起传给宿主机。
宿主机内核没有校验起始位置是否位于数据包的 IPv4 头之后。在提示被篡改的情况下,内核的校验和辅助函数会写入一个已经被内核检查并处理过的 IPv4 头。研究者给出的例子中,头长度字段从 5 变成 15,宿主机的分片代码因此把 20 字节的头当作 60 字节处理。
内核 CVE 团队的评分说明描述了这条路径:来自 microVM 的构造元数据到达宿主机的 TAP 设备和 IPv4 分片代码,属于客户机或本地虚拟设备路径,而不是互联网接收路径。该漏洞代码可追溯至 2008 年的 Linux 2.6.27,上游受影响范围从该版本一直延伸到各修复稳定版之前,几乎所有 Linux 宿主机都在范围内。
AlmaLinux 特别强调,PwnEscape 不是 KVM 的缺陷,它存在于宿主机内核的 IPv4 网络栈中。Red Hat 则补充说,本地攻击者或不受信任的客户机虚拟机都能触发该漏洞,因此影响并不限于虚拟化宿主机。
三种攻击后果
研究者与 Vercel 共同展示了三种后果。第一种是宿主机内存泄露:只要客户机持续发包,宿主机内核内存就会反复出现在客户机发出的数据包中。Vercel 表示,这一内存泄露已在其生产沙箱环境中得到演示。
第二种是宿主机崩溃:两个数据包即可让宿主机宕机,其上所有沙箱一并失效。第三种是宿主机代码执行:通过受控写入宿主机内核内存,并串联利用,最终以 root 权限在宿主机上运行程序。这一项仅在研究者自有的 KVM 和 Firecracker 机器上完成,尚未在第三方环境复现。
该漏洞由 PWNAI Research 的 Paulos Yibelo 在今年 8 月发现,当时他正在参加 Vercel 悬赏 100 万美元的公开沙箱安全挑战。Vercel 称这是该项目最重要的报告。研究者于 9 月 4 日私下向内核安全联系人报告了根本原因。
修复进展与发行版差异
修复由 Red Hat 的 Michael S. Tsirkin 编写,提交信息为“ipv4: validate checksum start before completing checksum”,10 月 14 日进入主线内核,10 月 15 日七个稳定内核携带该修复发布,内核 CVE 团队同日公开 CVE-2026-99999。修复在六个内核文件中增加了一项检查,确认校验和起始位置有效后才完成校验和;提交信息称这是纵深防御,更完整的输入校验仍在后续推出。
各发行版进度不一。AlmaLinux 于 10 月 23 日将 8、9、10 的修复内核转入生产,并提示 kernel-5.14.0-687.58.1.el9 版本号更新但不含修复。Debian 12 和 13 已通过 DLA-4841-1、DLA-4850-1 和 DSA-6568-1 提供修复包。
其 CVE 页面将 22.04、24.04、26.04、26.10 列为受影响、修复进行中,16.04、18.04、20.04 同样列为受影响且无修复,并将该问题定为 Medium 优先级。已修复的稳定内核版本包括 5.10.272、5.15.223、6.1.190、6.6.159、6.12.113、6.18.57 和 7.2.11,主线为 7.3-rc7。
风险场景与缓解建议
风险最高的是多租户宿主机。任何控制一台客户机的人都能攻击宿主机,并经由宿主机影响同一机器上的其他客户机。基于 KVM 或 Firecracker 的云与 VPS 宿主机、CI 运行器、代码沙箱和 AI 代理执行平台首当其冲。研究者预计,较弱配置下的利用会在数周内出现,默认 hypervisor 配置下的利用会在一个月内出现。
降低紧迫性的因素有三点。该漏洞本身不能远程利用,攻击者需要已在客户机内运行代码,或在机器上拥有本地位置;内核 CVE 团队将其评为本地攻击。目前没有已报告的攻击,也没有公开的利用代码,CISA 在 CVE 记录中的利用评估为 none,该编号也未进入 KEV 目录,研究者尚未公布利用代码,并保留代码执行细节待第二篇报告。此外,修复已经存在。
修补对象是宿主机内核,修补客户机并不能保护宿主机。应先列出运行不完全可信代码的宿主机,包括 hypervisor、VPS 与云主机、CI/CD 运行器、沙箱与 AI 代理平台、承载多租户工作负载的 Kubernetes 节点以及运行嵌套虚拟化的机器。检查时应查看正在运行的内核而非仅看已安装的包,用 uname -r 与修复版本表或发行版公告比对,修复包在宿主机重启进入新内核前不起作用。
Akamai 表示已修补自有 hypervisor,但客户仍需自行修补其虚拟机和 Kubernetes 节点,其基于 Ubuntu 的 LKE Enterprise 节点在 10 月 29 日仍在等待 Canonical 的修复。Akamai 还建议从不受信任的容器中移除 CAP_NET_RAW 能力,称这有助于缓解至少部分已知攻击向量。NetApp 的临时公告列出包括基板管理控制器和 SolidFire/HCI 节点在内的多款产品仍在调查中,且暂无可用的规避措施。
时间线与披露状态
8 月 18 日至 20 日,Vercel 开放沙箱挑战,研究者在两天后提交首份内存泄露报告。9 月 4 日,根本原因连同候选补丁私下报告给内核维护者。10 月 14 日修复并入主线,Vercel 公布挑战结果。10 月 15 日 15 时 19 分,内核 CVE 团队发布 CVE-2026-99999 及七个修复稳定内核,当晚 22 时 25 分相关帖子出现在 oss-security 邮件列表。
10 月 16 日,CISA 在 CVE 记录中给出利用评估 none,AlmaLinux 发布测试内核。10 月 29 日 Akamai 发布缓解指引,NetApp 更新公告。10 月 30 日 22 时 06 分 Ubuntu 的 CVE 页面更新,仍无已发布修复。
评分方面,内核 CNA 给出 CVSS 3.1 9.3 分,评级 Critical,向量为 AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H;NVD 将该 9.3 列为 Secondary 分数,状态为 Received,尚未给出自己的评分。Red Hat 评为 Important 8.8,其 PR:L 反映 Red Hat 认为攻击者需要一定权限。CISA 按 CWE-20 归类,Red Hat 按 CWE-787 归类。Red Hat 的 CVE 页面称其将该缺陷作为 KEV 活跃利用案例跟踪,但这是 Red Hat 的措辞,CISA 并未将该编号加入目录,也未发现公开的攻击报告。
该漏洞与先前报道的 Linux TCP 释放后使用漏洞 CVE-2026-98432 和 Fragnesia 漏洞 CVE-2026-46300 是不同问题,针对后两者的修补并不覆盖此漏洞,除非新内核构建明确列出 CVE-2026-99999。
要点
- 漏洞位于宿主机内核 IPv4 网络栈,而非 KVM 本身
- 攻击者需先在客户机或本地取得代码执行位置
- 研究者演示了宿主机内存泄露、崩溃与 root 代码执行
- 上游 7 个稳定内核于 10 月 15 日携带修复发布
- Ubuntu 所有受支持版本仍列为受影响且无补丁

正在读取登录状态…
暂无讨论,说说你的看法吧