PwnEscape:逃出虚拟机的洞不在虚拟机里,而在 Linux 内核网络栈
文章目录
先说结论:2026 年最危险的一个虚拟机逃逸漏洞,洞根本不在 KVM 里。
它藏在 Linux 内核的 IPv4 网络栈里,已经藏了 18 年。租户在自己的虚拟机里发几个精心构造的网络包,就能把宿主机的内核内存一点一点偷出来,实验室里已经链到了宿主机 root 执行。
更扎心的是:如果你租的是 VPS,这个洞你自己修不了。漏洞代码在宿主机内核里,只有云厂商打补丁 + 重启宿主机才管用。你唯一能做的,是先把数据备份好。

一、漏洞速览
| 项目 | 内容 |
|---|---|
| CVE 编号 | CVE-2026-99999(绰号 PwnEscape) |
| CVSS 评分 | 9.3(上游口径;Red Hat 评 8.8,差别只在权限项) |
| 影响组件 | Linux 内核 IPv4 网络栈(分片重组路径) |
| 引入时间 | 内核 2.6.27,约 2008 年——潜伏 18 年 |
| 利用条件 | 普通租户网络包即可,无需嵌套虚拟化、无需特权 |
| 公开 PoC | 无(完整技术分析已公开,宿主机接管细节被作者扣下) |
| 在野利用 | 未确认(Red Hat 页面有一句”按 KEV 活跃利用跟踪”的模糊表述,与其他报道口径不一致,以未确认为准) |
| 发现者 | Paulos Yibelo(PWNAI Research / pwn.ai) |
二、大白话原理:一个包,两次”验票”,中间被掉了包
这个洞的本质,是一次经典的检查与使用不一致(TOCTOU)。发现者 Yibelo 的原话是:
“Linux 的不同部分,被允许信任同一个数据包的不同版本。”
拆开讲,过程是这样的:
- 租户虚拟机发出的网络包,可以带着一种叫 CHECKSUM_PARTIAL 的状态进来:意思是”校验和我还没算完,内核你帮我补上”,还附带两个元数据——从哪开始算、写到哪去。注意:这两个位置参数,是租户自己填的。
- 包进来时,内核验过一次票:IPv4 头合法,版本 4、头长 20 字节(0x45),放行。
- 但等到包走到 IP 分片环节,内核先执行了”帮租户补校验和”这一步(
skb_checksum_help()),把校验和按照租户给的位置写了回去——写的位置正好压在 IP 头上。写完之后,头长字节从 0x45 变成了 0x4f,头长从 20 字节变成了 60 字节。 - 然后分片器才回头读包头:”哦,头长 60 字节。”可这个包实际只有 28 字节的线性数据(20 字节头 + 8 字节载荷)。分片器照着 60 字节往外拷,多拷出来的 32 字节,是宿主机内核里紧挨着的内存。
一发包,漏 32 字节。而且可以反复发、反复漏。

在作者的实验室环境里,这条链子继续往下走:靠可控的内存分配,把”读”升级成了 64 字节的宿主机内核写入,最终在四次冷启动内拿到了宿主机上的 root 辅助程序执行。
内核维护者 Michael Tsirkin 的评价很直白:
“如果一个带坏校验和元数据的包进了 IPv4 协议栈,
skb_checksum_help就能把网络头写坏,然后搞出一堆乱子。”
三、最有故事性的部分:这是 AI 挖出来的
这个洞是在 Vercel 的 100 万美元沙箱悬赏挑战里被发现的——1285 份报告里,唯一一个 Critical 级别,单份报告拿走了最高的 5 万美元奖金。
发现过程更值得说道:作者用的是自研的 Omega-Pwn 挖掘框架,以一个大模型做推理引擎,人类只负责定范围。3 天找到,API 费用不到 700 美元。
一个在内核里躺了 18 年、躲过无数人工审计的洞,被 AI 用三天、几百美元挖了出来。这大概就是 2026 年漏洞挖掘的日常了:攻防双方的成本结构,都在被改写。
四、修复状态:上游已修,发行版还在路上
- 上游修复:10 月 14 日合入主线,已进入 5.10.272 / 5.15.223 / 6.1.190 / 6.6.159 / 6.12.113 / 6.18.57 / 7.2.11 等稳定版。
- 但要注意:Greg KH 明确说了,这个补丁只是纵深防御——“更完整的入口校验还在做,需要更多工作”。
- Red Hat:RHEL 8 / 9 / 10 全部受影响,截至 10 月 20 日仍未发布勘误(errata),官方页面只说”正在推进修复”。
- AlmaLinux:动作最快,已发布回移补丁(8 系 4.18.0-553.174.2、9 系 5.14.0-687.57.2、10 系 6.12.0-211.66.2)。
- 云厂商:Vercel 已确认其沙箱环境里只演示了内存泄漏、没有客户数据被访问;其他大厂截至发稿没有公开确认状态。
五、运维该做什么
自己管宿主机的(KVM 宿主机、裸金属云、机房虚拟化平台):
- 尽快升级到带修复的内核版本,并安排重启——这个洞没有运行时缓解措施,不重启不算修完。
- 优先处理跑多租户、不可信负载的宿主机;单租户内网环境可以排后面,但别忘了。
- RHEL 系先盯着官方勘误,一出就打;或者评估先切到 AlmaLinux 的回移内核。
租 VPS / 云主机的:
- 今天先做一次完整备份,这是你唯一能自己掌控的事。
- 盯云厂商的维护公告,宿主机重启窗口一到,确认你的实例在受影响批次里得到处理。
- 别指望在虚拟机里
apt upgrade能解决——漏洞不在你的内核里,你升级一百遍也没用。

六、放在 2026 年看:虚拟化隔离正在批量失守
PwnEscape 不是孤例。2026 年 KVM 逃逸已经凑齐了一串:
- 6 月 ITScape(CVE-2026-46316):arm64 vGIC-ITS 竞态,首个公开的 KVM/arm64 逃逸
- 7 月 Januscape(CVE-2026-53359):影子 MMU 释放后使用,潜伏 16 年
- 8 月 Zapscape(CVE-2026-64561)
- 10 月 PwnEscape(CVE-2026-99999):不碰 KVM 本体,从宿主机网络栈侧面绕进来
前几个洞都在虚拟机监控器内部,PwnEscape 被普遍认为更危险:它只需要普通租户发普通网络包,不需要嵌套虚拟化,不需要任何特殊配置。**”虚拟机是安全边界”这个假设,在 2026 年需要重新审视了**——尤其是把不可信代码(AI 沙箱、CI 构建、用户脚本)关进虚拟机就觉得高枕无忧的场景。
作者预测公开利用代码会在”几周内”出现。在补丁铺满宿主机之前,这个窗口期不会太舒服。
先备份,再催厂商。
数据不会自己跑,但宿主机会。数据库巡检、补丁状态盘点这些重复劳动,可以先交给免费的 DBCheck 帮你盯着。
参考来源:oss-sec 公开披露(seclists.org)、The Register(2026-10-19)、Risky Bulletin(2026-10-19)、Red Hat CVE-2026-99999 页面、AlmaLinux 官方博客。
原文作者: liups.com
原文链接: http://liups.com/posts/486c1834/
许可协议: 知识共享署名-非商业性使用 4.0 国际许可协议