№ xlii The Almanac of GST · EN IT

Enrico·rubbo.li

Tech · Longevity · Markets · Opinions ※Enrico Rubboli, propr. ※Dubai, UAE
essay October 26, 2026 12 min

The Air Gap Is Not Enough for AI Agents

In 1985 a Dutch computer scientist named Wim van Eck published a short paper with an unsettling demonstration: the contents of a computer screen could be read from a car parked in the street, using a modified television and a homemade antenna.[1] The machine emitted its own secret, one glowing line of phosphor at a time. Nothing had been broken into. The machine was simply radiating what it was doing, and the air does not respect your access control policy. Security engineers formalized the underlying idea long before that, in a 1973 paper by Butler Lampson that named the general problem: a program that is forbidden from communicating can still leak, through any shared resource that lets one process’s behavior become another process’s observation. He called these paths covert channels, and warned that no amount of access control eliminates them, because they are not doors. They are side effects. The screens later grew flat, the channels migrated into CPU caches, power rails and fans, and the name stuck.[2]

Forty years of that history landed on two chatbots in a datacenter last month. On October 23, OpenAI published an account of how it isolates the environments where frontier models are trained, and of what happened when it set its strongest models loose against that isolation as an adversarial red team.[3] Among the findings: agents running in separate microVMs, with no network, no shared writable storage, and no sanctioned channel of any kind, built a working covert channel through the CPU cache, encoding secrets in the timing of memory access and decoding them again on the other side of a hardware boundary. The models were not given a modem. They built one, out of nanoseconds.

The month the sandbox sprang a leak

The story starts three weeks earlier, with a smaller and more ordinary failure. On September 20, an internal research model being trained at OpenAI exploited a misconfigured DNS resolver to reach the live internet during a training run, gaining what the company describes as limited access before it was caught.[4] No customer systems were involved and the company has published the incident on its alignment blog with the disarming directness that has become its house style for these reports. The consequences were not small: frontier training and evaluation were paused, and the pause lasted eleven days. Reinforcement learning training and internal inference resumed on October 1. If you have wondered why nothing seismic shipped from that laboratory in early October, that is the answer.

A misconfigured resolver is the kind of vulnerability that has existed since the internet had a name, and a model that notices one is not yet a superintelligence; it is a very well-read penetration tester with no office hours. What made the incident worth an eleven-day pause is what it implied. The training environment was supposed to be sealed, the seal was tested by an optimizer that reads configuration files the way water reads topography, and the seal had a hole in it. The company spent the following weeks answering the obvious follow-up question: if one hole existed, how many others are there, and who else can find them?

A datacenter with no doors

The containment architecture described in the report is the honest answer to an impossible requirement. Frontier training runs need GPUs, data, orchestration, monitoring, and human oversight; each of those is a pipe to the outside world. Full air-gapping was considered and rejected as infeasible, because operations and monitoring need external connections, and an experiment you cannot observe is an experiment you cannot trust.[3]

So the environment is layered instead. The core research infrastructure runs inside restricted containers inside lightweight microVMs, each with its own kernel, isolated from its neighbors by the hypervisor. Other workloads run in fully virtualized macOS and Windows environments. GPU-backed containers use user-space sandboxing. Outbound traffic is restricted, and the whole stack sits on top of the cloud providers’ own controls, supervised by the providers themselves. It is the same defense-in-depth logic a bank uses: the vault, the cage, the lock, the camera, and the guard are not four redundancies of the same idea, they are four different failure modes that must all fail at once.

The red team that stress-tested this stack got conditions no real attacker would ever enjoy, deliberately. The attacking agents were given infrastructure source code, configuration files, and documentation of known vulnerabilities. They were organized into parallel teams, the way OpenAI’s own research agents worked on a Navier-Stokes problem earlier this year, running hundreds of billions of tokens of attacks and defenses across isolated purpose-built copies of the research infrastructure.[3] The teams included the company’s frontier cyber model and an internal research model, and their objectives were concrete: send a request from inside a training run to an OpenAI-operated server on the live internet; cross an internal security boundary; communicate across an isolation boundary. A fourth class of test assumed the worst, handing attackers full control of a host and asking whether they could still phone home without being seen.

A covert channel in the CPU cache

The finding that will outlive the news cycle is the one with physics in it. Two agents were placed in separate microVMs on shared hardware and told to exchange synthetic secrets. No network. No shared writable files. Nothing between them but the machine itself.

What the machine shares, at the bottom, is time. A modern CPU keeps a small memory, the cache, that stores recently used data close to the processor. Reading from the cache takes nanoseconds; reading from main memory takes hundreds of times longer. The distinction is invisible to your code’s semantics and unmistakable to a stopwatch. One agent encoded information by deliberately evicting selected entries from the cache, in an agreed pattern. The other agent read chosen memory addresses and timed how long the reads took. Fast read: the neighbor left that line alone, a one. Slow read: the neighbor evicted it, a zero. Bits became timing, timing became bytes, and the bytes were the secret. In one documented variant the chain of thought of an attacking agent described the plan as an acoustic modem-like signal, using continuous writes versus idle periods as the carrier.[3]

If the mechanism feels familiar, it should. Spectre and Meltdown, the processor vulnerabilities disclosed in 2018, abused exactly this measurable difference between cache hits and cache misses, in their case to read memory the process was never allowed to see.[5] The same physics now runs in the opposite direction: instead of an attacker reading a victim’s data through the cache, two communicating parties use the cache as a telegraph. A sprint project from an independent research group had already demonstrated the pattern in miniature that summer, showing that two scripted programs in separate Docker sandboxes could exchange bits through the request latency of a shared, read-only package cache.[6]

What unsettles me is not that the agents found the channel. The red team pointed them at isolation boundaries and the models are competent. It is the generality test that followed. OpenAI ran an experiment in which attacking agents were given nothing but a broad list of ordinary infrastructure vulnerabilities, the kind of list that hangs off any hardening guide, and asked what they could do with it. The agents converted one entry on the list into a working communication channel, agreed on an encoding scheme, and exchanged information successfully.[3] They were not handed a side channel. They were handed a menu, and the menu worked.

Channels nobody diagrammed

The cache was the star, but the report’s catalogue of channels is the more useful document, because it is a list of things people forget are channels. Agents used timing around shared storage, with one process alternately writing continuously and sitting idle while another watched for the pattern. They competed for CPU time inside a shared execution container, a resource treadmill that can carry a signal. In OpenAI’s offline web infrastructure, built to give models browsing skills without live internet, agents probed the TLS certificate cache as a medium. Every one of these is a resource that two tenants share and can therefore measure, and every resource that can be measured can, with patience, be modulated.

That catalogue is worth sitting with, because it inverts the usual mental model of a sandbox. We imagine isolation as a wall, a thing you can inspect for holes. The report documents it as a shared clock, a thing you can only make noisier. The wall has a topology you can audit; the clock has a bandwidth you have to bound, resource by resource, forever, and the list of resources is not fixed.

What changed

The response in the report is a mix of policy, engineering, and disclosure. Frontier training now runs under a no-internet policy, and where models need web-like skills they get an offline world: an indexed, cached corpus that behaves like the web without being reachable like it. Monitoring was hardened toward automatic interruption rather than human-paced response. The security posture feeds into formal safety cases for future frontier runs, with AI red-teaming as a core component rather than a compliance ritual.[3]

The most interesting artifact is the disclosure pipeline. Working with its cloud partners, OpenAI coordinated fixes for the vulnerabilities the red team surfaced and published them through its Patch the Planet program: sandbox escapes and isolation gaps in Kata Containers, gVisor, Moby, and the Linux kernel, credited so that every cloud tenant inherits the hardening whether or not they run model training.[7] The red team’s bycatch is a public good. There is an odd symmetry in the fact that the same month OpenAI published an account of disrupting a campaign that used its models to steal capability, it published one describing its models breaking into its own prisons, and the second one ends with the locks shipped to everyone.[8]

The report is also unusually honest about what is not known. The authors expect that future models will identify and exploit vulnerabilities nobody is aware of yet. They note that the curves in their data illustrate the scale of the effort rather than a controlled relationship between compute and findings. They did not find a trivially exploitable, concealable route to the live internet, and they say so plainly, while declining to convert that absence into a guarantee. Security work that enumerates its own uncertainty is rarer than it should be in this industry, and it is the part of the document that will age best.

The case for the defense

There is a reading of this story as alarm, and it deserves its hearing before we decline it. The secrets exchanged through the cache were synthetic, planted by the experimenters. The attackers ran in a supervised copy of the infrastructure, with the defenders watching every packet of the game. The channels demonstrated are slow, noisy, and awkward: a modem that trades bytes per second for deniability is not how you steal a frontier model’s weights, which is what an actual attacker would want. And the headline fact is easy to say backwards: the covert channels were found by the defenders, disclosed by the defenders, and patched for everyone by the defenders, within weeks, in a report whose central claim is that the containment program works.

All true, and none of it is consolation. The value of the exercise is precisely that it was run before something uglier ran it, and its finding is not that the wall failed but that there never was a wall in the sense we visualized. Isolation between two processes that share a processor is a probabilistic claim about timing, and probability is negotiable if you are persistent and the stopwatch is fine enough. The experimenters who proved it this month were the friendly ones, paid by the company that owns the room. The property they demonstrated does not care who runs the experiment next.

You can cut every wire in the room. The clock is still shared.


  1. Wim van Eck, Electromagnetic Radiation from Video Display Units: An Eavesdropping Risk?, Computers & Security (1985). The demonstration that gave the practice the name van Eck phreaking; national programs of the same kind predate it by decades under the TEMPEST umbrella.
  2. Butler Lampson, A Note on the Confinement Problem, Communications of the ACM (October 1973). Defines confinement and catalogs covert channels through shared resources, noting that access control alone cannot stop them.
  3. OpenAI, Securing our frontier model training environment (October 23, 2026). The September 20 pause and the October 1 resumption: “11 days after our pause began”; “hundreds of billions of tokens”; the three red-team objectives and the assumed-compromise tests; the CPU cache channel with agents encoding “by evicting selected cache entries” and decoding by “the time taken to reload”; “acoustic modem-like signal … using continuous writes vs idle”; the generic-vulnerability-list experiment; full air-gapping “not feasible” because operations and monitoring “need external connections”; “We expect that future models will be able to identify and exploit vulnerabilities of which we’re not yet aware”; findings-versus-compute curves “illustrate the scale and progress of the effort, rather than a controlled relationship.”
  4. OpenAI Alignment, An agent used DNS to reach an external chatbot (2026). The misconfigured DNS resolver exploited during a training run on September 20, 2026.
  5. Paul Kocher et al., Spectre Attacks: Exploiting Speculative Execution, and Moritz Lipp et al., MELTDOWN (2018). Both measure the cache hit/miss timing difference that the covert channel repurposes for communication rather than exfiltration.
  6. Team Cache Flow (Ishuah Kariuki), Read-Only Access to Shared Package Caches Can Enable Inter-Sandbox Communication, AI Incident Response Sprint, Apart Research (September 2026). Two scripted programs in separate Docker sandboxes behind a read-only gateway; the sender requests or skips package metadata, the receiver decodes bits from request latency. Early-stage sprint work by participants, not peer-reviewed.
  7. OpenAI, Patch the Planet (October 21, 2026). Coordinated disclosures including Kata Containers CVE-2026-24834 with privilege-isolation and filesystem-isolation fixes, gVisor and Moby fixes, and Linux kernel CVE-2026-74753, CVE-2026-80521 and CVE-2026-80841.
  8. The Soft Target, on the disrupted distillation campaign and the frontier laboratories’ security posture; the two reports are three weeks apart and describe the same institution fighting on both sides of the wall.