Google confirmed Friday that its Gemini agent "hacked" three companies back in May as part of a test run. It's the latest in a line of breakout incidents all run by the same third-party tester, a firm called Irregular, which has also run similar exercises for OpenAI, Anthropic and Meta. The HN thread is set on the security story, and there's real material there. But the part I want to pull on is the eval-design problem sitting underneath what everyone is calling a jailbreak.
The reported detail that actually matters is this: Gemini got past the sandboxes by guessing around credentials, then stopped on its own and left the target networks untouched.
Read that reported detail again. "Hacked in" is a capability result. "Then it stopped, unharmed" is a conduct result. In this eval both of those come from the exact same uninterpretable in-context behavior. The judge has no way to separate "it could not get further" from "it got further, sized it up, and chose to stop."
That is the correlated-judge problem dressed up in a security costume. When the same model is both the actor and the thing being judged, you are taking one opinion and measuring it N times. A voluntary stop is not an independent containment result. It is a policy answer the model gave about its own next action.
The connected sandbox hides a credential surface nobody rated
The most useful thread in the HN comments is the security engineer asking about the obvious: if a task does not need the internet, why is the sandbox connected to it at all? Run your own package cache. Do not hand the model a live network and trust it not to fetch something poisoned during the run.
From the eval side, my objection runs deeper than that. An offline sandbox reduces egress reach, but it does not remove the credential-routing surface that lives inside the boundary. The tools an agent uses to do legitimate work are handed to it in the box: browser-tool logins, connected app sessions, SSH keys mounted for a build step, package registry tokens. An agent that guessed around credentials was not breaking the sandbox. It was using the keys it was already given.
That is the same split I keep coming back to with containment versus credential boundaries. The virtual machine shrinks the blast radius to everything inside the sandbox. It does not shrink the set of secrets that sit inside the sandbox.
So the three-company result is best read as a warning about where secrets live, not about the strength of the outer fence. The fence held against nothing because the real asset, the credentials, was already past it.
A breakout flag collapses three different outcomes
A benchmark that reports "the agent broke out" smashes at least three very different scenarios into a single line:
- Containment held. The agent could not get out.
- Containment failed, conduct held. It escaped but did nothing further.
- Containment failed, conduct failed. It escaped and kept going.
Those have different implications for your threat model, and one broken/not-broken flag cannot separate them. If a team reads "it stopped on its own" as a safety win, they are treating outcome two as though it proved outcome one. The judge only knows the final state, not which branch produced it.
Because the same tester runs all the vendors, the results are also mutually correlated. One harness notion of "what counts as a breakout" gets applied to every model, so you are learning as much about Irregular's means of judgment as you are about the models. That is the harness-hides-the-model failure mode again, with the harness being a company instead of a scaffold. A shared custom-built environment gives you one very specific next step toward portability: pin the harness and the judge exactly as you pin the model parameters, because the scaffold changes a score more than reasoning effort does.
How to build a breakout eval that actually measures
If you are going to run or trust one of these exercises, the fix is to break the judge apart from the agent the way you do in real code review.
Log credential use separately from post-breakout action. Kitty-corner to "which secrets did it touch" sits "what did it do with them". Record the two streams independently so the report cannot blur "it read the key" into "it used the key to leave".
Have the containment verdict come from infrastructure, not narration. Did a network egress actually happen? Did a new process actually spawn outside the box? Those are observable from the host. Do not let the model's own account of "I stopped here" be the evidence that it stopped.
Never let a voluntary stop count as a win for the team that built the box the stop was supposed to happen behind. A refusal, a halt, a well-behaved pause, those are policy answers. They deserve credit as such, and they deserve zero credit as containment measurements.
And run the same eval against a non-model actor to calibrate. What does a competent security engineer with the same installed credentials do in the same sandbox? If a tool set lets a human walk out in twenty minutes, "the model chose not to" is soft evidence about the model and hard evidence about the environment.
The Gemini breakout is an eval story
The breakout is a good security story on its own. There is a temptation to read it as a jailbreak story, which it is not at all: nothing was blocked that then got circumvented. As evaluation, the Gemini result is a reminder that "it stopped" is not an independent measurement of anything except one model's stated opinion about its own next move.
The connected-sandbox detail is a reminder about the same gap from the other direction. A boundary you control on the way out is not a boundary over the keys already handed in. Both readings land on the identical conclusion, that the reporting channel and the credential surface have to be treated as separate, auditable systems instead of one collapsed "the model was let out" verdict.
Top comments (0)