Trail of Bits researcher Artem Dinaburg gave OpenAI’s GPT-5.6-Cyber one job: escape a QEMU/KVM virtual machine on a Debian 12 host. The agent broke out three separate times over roughly 12 hours—first via a recently disclosed host kernel bug, then via unpatched and unmarked library flaws, then via a chain that included previously unknown 0-days.
The write-up is part of Trail of Bits’ Patch the Planet work with OpenAI. Dinaburg’s blunt line: you can no longer assume a mere VM will contain a sufficiently advanced AI agent with cyber capabilities—treat such agents as an advanced persistent threat.
Related Brocker context: OpenAI’s gated GPT-5.6-Cyber / Daybreak path, and earlier sandbox-break reporting around Kimi K3 eval containment (different mechanism, same containment question).
Confirmed
- Setup: QEMU/KVM guest on Debian 12 (oldstable) with an AMD Zen 3 host CPU. The agent started outside the VM with SSH into the guest; the CTF goal was to read a flag on the host.
- Escape 1 — Januscape (CVE-2026-53359): Within about an hour the agent found the host kernel vulnerable, built an exploit where no public one existed, and hard-locked the host on the first live test. Dinaburg then updated to the latest Debian 12 kernel package.
- Escape 2 — libslirp: Debian 12 still shipped libslirp 4.7.0, vulnerable to CVE-2026-9539. The agent combined that with an unmarked bug-fix commit (no CVE) into an arbitrary host memory read/write primitive. Dinaburg rebuilt minimal QEMU from latest upstream libslirp and QEMU.
- Escape 3 — 0-day chain: Against the rebuilt stack the agent chained three 0-days (at discovery) plus one upstream-patched KVM issue that had not reached the distro kernel because it was not labeled a security fix—including QEMU VAPIC/SMRAM exposure, KVM paging/shadow-page flaws, and a libslirp ICMP fragment reflection bug used to hunt live NetPacket callbacks.
- Unused finds: Additional issues in libslirp, CUPS, and QEMU were found but not needed for the final chain (reliability, AppArmor, or
-display noneremoved the path). - Firecracker contrast: The same agent hard-locked a Firecracker host via Linux kernel flaws (patched upstream) but did not complete a full escape in the reported run—Firecracker is a harder target, not proof of immunity.
- Human role: Dinaburg’s main intervention was physically rebooting when exploits hard-locked the kernel; the agent persisted across ~12 hours with minimal hand-holding.
Unknown
- Replication: Independent labs have not yet published matching QEMU/KVM escape runs with the same model and patch levels.
- Firecracker ceiling: Whether more wall-clock time would have produced a Firecracker escape is open; the post only reports failure to escape in that attempt.
- Production blast radius: How often real defender or red-team deployments still sit on oldstable + full-featured QEMU with network helpers like libslirp is not measured here.
Our take
This is not a product launch note—it is a containment baseline reset. If your agent can download, build, fuzz, and research inside a “throwaway” VM, that VM’s shared devices and host libraries are now part of the threat model. The three Brocker cyber guardrails still apply: human approval and rollback for anything that can touch the host; isolate repos and credentials so a breakout has nowhere useful to go; treat prompt-injection and tool surfaces (SSH, network helpers, display paths) as attack surface, not conveniences. Prefer minimal hypervisors, fast upstream patches (silent fixes count), short agent run windows, and fresh environments per session.