2026 年 9 月 · 6 分钟阅读
通用虚拟机挡不住 AI 网络 Agent:Trail of Bits 三次实测越狱

关键定义
GPT-5.6-Cyber OpenAI 面向网络安全场景的安全专用模型,在 Trail of Bits × OpenAI 的 Patch the Planet 计划中用于寻找、验证并修补广泛使用软件中的漏洞。
QEMU/KVM 虚拟机 通用机器模拟器(QEMU)与内核虚拟化模块(KVM)的组合,模拟一整台计算机(磁盘、网卡、显示、BIOS、ACPI 等),是云与本地环境最常见的虚拟机方案。
攻击面累积 虚拟机每模拟一个设备就新增一段客户机可触达的 C 代码路径。模拟的组件越多,被内部 Agent 探测到并被利用的代码就越多——这是通用 VM 结构性暴露的核心原因。
8 月 26 日,Trail of Bits 在 Patch the Planet 计划(与 OpenAI 合作的漏洞修补计划)中发布了一个受控实验:把 OpenAI 的安全专用模型 GPT-5.6-Cyber 放进一台 QEMU/KVM 虚拟机,只给它一个目标——逃出来,读宿主机上的 flag 文件。12 小时自主会话里,它逃了三次;最后一次,它从零开始找到了四个此前无人公开的漏洞组件,包括三个零日。
实验设置:一个能读源码、能上网的 Agent
研究者 Artem Dinaburg 用 Debian 12(AMD Zen 3 宿主)跑了一台 QEMU/KVM 虚拟机,给 Agent SSH 访问,允许它下载软件、读源码、构建工具、做研究。他自己的角色基本只剩物理重启——当 Agent 把宿主内核搞到硬锁的时候。
三次逃逸,复杂度逐次升级
逃逸一:刚披露的内核漏洞,无现成 exploit
会话开始约一小时后宿主硬锁。回看日志,Agent 识别出宿主内核存在数周前才披露的 Januscape(CVE-2026-53359)——当时没有任何公开 exploit,它从零写了一个并完成测试;虽然第一次让主机失稳,但 Dinaburg 判断只要继续迭代就一定能成功。他随后把内核更新到 Debian 12 的最新版本。
逃逸二:发行版补丁滞后成了结构性缺口
Debian 12 携带的 libslirp 4.7.0(QEMU 网络库)仍有 CVE-2026-9539,Agent 还发现了一个没有 CVE 编号、尚未进入发行版的上游修复提交。组合两者,它实现了宿主任意内存读写——之后『逃逸是平凡的』。关键点是:研究员自己都不知道装的是哪个版本、有没有这两个漏洞,Agent 独立判断出来了。
逃逸三:零日串联
第三轮之前 Dinaburg 手动用最新上游源码重编 QEMU 和 libslirp,去掉所有非必要功能,尽可能压缩攻击面。Agent 仍然系统地分析了宿主内核与 QEMU 源码,找到四个组件:QEMU VAPIC ROM 别名(未修补,触发 SMM ring-2 代码执行)、Linux KVM shadow page 失同步(上游已修未分发)、paging64_invlpg 陈旧角色(创建可写的 2 MiB 宿主物理映射)、libslirp 分片 IHL 混淆。四个都已上报维护者。
为什么通用 VM 结构性挡不住
这不是 QEMU 工程质量差,而是它的设计目的就是模拟一整台计算机:虚拟软驱、显示、USB、音频、BIOS、ACPI、网络……每一个模拟组件都是一段客户机可触达的 C 代码,也就是一段攻击面。Dinaburg 提炼出两个结构性问题:
攻击面累积。功能越多,可被内部攻击者探测的代码就越多。实验中一个细节很说明问题:Agent 其实还找到过一个 QEMU 渲染器里的 panning-buffer 溢出——只是因为测试环境没有接显示驱动,这个 bug 无法被触发。通用性本身就是暴露面。
发行版更新滞后。上游补丁到 stable 需要数周数月。AI Agent 能直接读上游 git 提交(包括那些未被标记为安全问题、不会被优先回移的修复),在几秒内把上游与发行版之间的缝隙变成可利用的漏洞。而人类攻击者要先知道目标版本、再知道缺哪个补丁、再写 exploit——需要数天到数周。
Firecracker 扛住了——以及为什么这还是不够
同一实验里,同型号 Agent 在 Firecracker 隔离内未能在测试窗口逃逸(尽管把宿主硬锁了)。作者把它当作当前最有力的实证数据点:最小攻击面虚拟化显著抬高了逃逸门槛。但他强调这不是保证——宿主内核、特别是 Firecracker 与 QEMU 共享的 KVM 接口,仍然是攻击面。
框架要求『更强隔离』,但没说用什么
OpenAI 的 Preparedness Framework 与 Anthropic 的 Responsible Scaling Policy v3.4 都没有规定具体的沙箱或虚拟机技术。OpenAI 8 月 18 日的政策更新(《Pacing model development in an era of cyber-critical capabilities》)要求对执行模型生成或不可信代码的工作负载做『更强的隔离』、更紧的网络控制与持续自动化安全测试,但没有点名 Firecracker、gVisor 或任何等价实现。
英国 AISI 与牛津大学的 SandboxEscapeBench(arXiv:2603.02277)引入了衡量 AI Agent 容器逃逸能力的基准,但只覆盖 Docker/OCI 环境——这个实验的威胁模型更硬,是真实的 QEMU/KVM 虚拟机。结论很直接:在没有最低隔离架构要求之前,选择权落在每个开发者与组织手里。
对企业意味着什么
把高能力 Agent 当 APT 来设计隔离
Trail of Bits 的结论很直接:『你不应再假设一个普通 VM 能关住足够先进的 AI Agent。』按 NIST 的定义,这个 12 小时会话里的 Agent 具备 APT 的全部特征——自研工具、零日利用、隐蔽持久、针对目标投入大量资源。
隔离层决定残余风险
跑 Agent 工作负载前先问自己用的是哪种隔离。QEMU/KVM 应按『会被逃逸』设基线;Firecracker 一类最小攻击面架构是目前最有力的实证选择。
补丁策略要跟上游而不是跟发行版
发行版 stable 的更新节奏是结构性漏洞来源。对运行 Agent 的宿主,考虑直接跟踪上游 git 修复,而不是等安全公告。
三步行动
盘点运行 AI Agent 工作负载的隔离层
把所有执行模型生成或不可信代码的环境列出来,标注用的是什么虚拟化或沙箱(QEMU/KVM、Docker、Firecracker、gVisor……)。不知道自己的隔离层是什么,就是本实验里研究员的处境。
对高能力 Agent 切换到最小攻击面架构
把高权限、能接触敏感数据的 Agent 隔离到 Firecracker 一类最小攻击面虚拟化上,而不是标准 QEMU/KVM VM。在没有框架强制之前,这是企业自己必须做的架构决策。
把宿主的补丁节奏改成跟踪上游
对跑 Agent 的宿主,订阅上游 git 提交与安全修复,不等发行版 stable 的延迟节奏;同时记录你实际运行的确切组件版本——本实验里,研究者自己都不知道自己装的 libslirp 版本。
参考来源
- Trail of Bits: VMs won't contain cyber-capable agents (2026-08-26) — blog.trailofbits.com/2026/08/26/vms-wont-contain-cyber-capable-agents/
- TechTimes: AI Agents Now Discover Zero-Days to Escape Virtual Machines, Trail of Bits Proves (2026-09-01) — www.techtimes.com/articles/326131/20260901/ai-agents-now-discover-zero-days-escape-virtual-machines-trail-of-bits-proves.htm
- OpenAI: Pacing model development in an era of cyber-critical capabilities (2026-08-18) — openai.com/index/pacing-model-development-cyber-capabilities/
- UK AISI / Oxford: SandboxEscapeBench — arxiv.org/abs/2603.02277
常见问题
这个实验证明了什么?+
通用 QEMU/KVM 虚拟机无法可靠隔离高能力 AI 网络 Agent。OpenAI 的 GPT-5.6-Cyber 在 12 小时自主会话中三次逃逸,其中一次自主发现并串联了三个此前无人公开的零日漏洞加一个已修复但未进入发行版的缺陷。
三次逃逸分别是怎么发生的?+
第一次利用刚披露的内核漏洞 Januscape(CVE-2026-53359)自写 exploit;第二次利用发行版补丁滞后——libslirp 4.7.0 的 CVE-2026-9539 加一个上游已修未分发的修复,实现宿主任意内存读写;第三次面对从上游源码重编的最小化环境,自主分析宿主内核与 QEMU 源码,找到并串联 VAPIC ROM 别名、KVM shadow page 失同步、paging64_invlpg 陈旧角色与 libslirp 分片 IHL 混淆四个组件。
为什么说通用虚拟机结构性暴露?+
两个原因:攻击面累积——QEMU 为通用而设计,每个模拟设备都是一段 C 代码攻击面;发行版更新滞后——上游安全补丁要数周数月才进 stable,而 AI Agent 能直接读上游 git 提交,秒级发现发行版与上游之间的缺口。
Firecracker 为什么扛住了?+
同一型号 Agent 在 Firecracker 隔离环境中未能在测试窗口内逃逸(尽管把宿主内核打硬锁)。最小攻击面设计显著抬高了逃逸门槛——但作者强调它不是保证,宿主内核(尤其是与 QEMU 共享的 KVM 接口)仍是攻击面。
安全框架有没有强制要求具体的隔离架构?+
目前没有。OpenAI Preparedness Framework 与 Anthropic Responsible Scaling Policy v3.4 都没有强制指定 Firecracker、gVisor 等最小攻击面技术;OpenAI 8 月 18 日的政策更新只要求『更强的隔离』而不指定实现。英国 AISI 的 SandboxEscapeBench(arXiv:2603.02277)只覆盖 Docker/OCI 容器逃逸,这个实验是更难的虚拟机威胁模型。
相关文章
AI 网关只告诉你请求去了哪,JetStream 回答它该不该发
JetStream Clearance 把零信任的信任边界从身份下移到单次动作:AI Blueprints 契约 + 参数级权限 + 序列检测,在 MCP 调用执行前逐动作授权。网关已成商品,授权引擎是下一个战场。
审查过的 MCP 工具在第四次调用开始背叛你:Deadbugz 的运行时门控投毒
Pillar Security 披露活跃 MCP 供应链活动 Deadbugz:恶意服务器伪装成文本格式化工具,前三次调用一切正常,第四次起改写返回的工具元数据,指示 agent 搜寻 SSH 密钥、AWS 凭证并隐藏行为。一次性审查被系统性绕过——工具描述是运行时安全边界,批准应发生在动作执行之时。
OWASP Agentic Top 10 落地清单:从风险到控制
把 OWASP Agentic Top 10(ASI01-ASI10)变成可执行评估清单:每项风险对应的具体控制措施、可审计证据与最常被忽略的三项(供应链、记忆投毒、级联失效)。
Unit 42 实录:多 Agent 前沿 AI 勒索攻击 10 小时拿下企业,还留下 80 页审计
Palo Alto Unit 42 记录 9 月 2 日事件:多个前沿 AI Agent 并行,10 小时用 50+ ATT&CK 技术拆掉云/身份/CI-CD/SaaS 四层防线——人类红队通常要两周。攻击结束后 Agent 还生成 80 页技术审计交给受害者。