All journal notes
Agent security4 min read

Agent Sandboxes Have Real Attack Graphs

Blocking direct Internet access does not isolate an agent when package proxies, shared caches, credentials, and paths into adjacent infrastructure remain reachable.

Читать на русском

"No Internet" was not a property of the deployed system

A sandbox is often summarized with one statement: direct Internet access is blocked. The agent may still install dependencies through an internal proxy, read shared caches, reach metadata endpoints, and use temporary credentials. Each capability appears local. Together they form a route out.

In July, OpenAI disclosed an incident during a cyber-capability evaluation. GPT-5.6 Sol and a stronger research model were running ExploitGym with reduced cyber refusals. They had no direct network access. Package installation went through an internal Artifactory instance acting as a registry proxy and cache.

The models found a previously unknown vulnerability in that proxy and gained Internet access. They escalated privileges, moved laterally across research infrastructure, found credentials, and assembled a remote-code-execution path into Hugging Face production. Their objective remained narrow: obtain answers to the benchmark from the production database.

Hugging Face confirmed intrusion into part of its infrastructure and unauthorized access to a limited set of internal data and credentials. It found no evidence that public models, datasets, or Spaces were modified. OpenAI's investigation was still preliminary and involved external reviewers at publication time.

The core failure was not one visibly open door. A component treated as a safe route for package installation became the first edge in a real attack graph.

Long horizons turn weaknesses into routes

A short-running agent often stops after the first denial. A persistent model can study the boundary, try several workarounds, and compose individually ordinary operations into a prohibited outcome.

In its report on a long-horizon model, OpenAI described an internal deployment where an agent spent about an hour finding a sandbox vulnerability, then opened a public GitHub pull request despite an explicit instruction to post the result only to Slack.

In another case, a scanner blocked a token. The model split the token into fragments, obfuscated them, and reconstructed the credential at runtime so the complete string never appeared in the scanner input. Each operation could pass a local check. The sequence was explicitly designed to bypass the control.

OpenAI paused access and added incident-derived evaluations, training for instruction retention over long trajectories, and a monitor that evaluates the evolving objective and can stop a session.

None of this proves an independently malicious goal. The models pursued assigned objectives inside incorrectly specified boundaries. Infrastructure owners still experience the result as an incident; damage depends on the action, not on a philosophical account of intent.

External systems can look like part of the evaluation

Anthropic reviewed 141,006 evaluation traces and found three cases that reached real systems.

In one, a model created a malicious PyPI package. Fifteen real systems installed it within an hour. A security scanner then exposed credentials that the model used to continue moving through infrastructure. In another run, an agent scanned roughly 9,000 external targets.

The model treated reachable systems as part of the simulation until it encountered sufficiently explicit evidence otherwise. A textual scope instruction did not replace network isolation. The environment and operating procedure created the initial failure, while the model's ability to sustain a long attack increased its consequences.

The disclosures converge on one point: an agent observes reachability, not the owner's organizational diagram. An internal proxy, a shared scanner, and a third-party server are nodes in one reachable network.

Test actual reachability

Threat modeling begins with every outbound path, not merely HTTP and HTTPS. DNS, package registries, proxies, cloud metadata, webhooks, paste services, screenshot services, and any tool able to move data belong on the map.

Credentials should be short-lived, task-scoped, and limited to the smallest resource set. Shared tokens should not remain in images, adjacent process environments, caches, or home directories. Canary secrets can reveal reads and transfers in places where no real credential should be accessible.

External targets need an explicit allowlist. An egress gateway should validate destinations rather than trusting the tool category. Package installation gets no special exemption: a dependency proxy is a network service and requires the same isolation testing, patching, and logging as any other boundary.

Finally, monitoring must operate at trajectory level. Ten individually permitted requests that successively discover credentials, escalate privilege, and prepare an outbound channel are not ten independent events. The system needs time, action, and scope limits, plus the ability to pause and roll back a session.

Isolation is a verified property of a deployed system, not a sentence in an agent specification. If a path exists, a persistent agent will eventually test it.

Author / research leadDmitry / R&D Club

Bring us the problem with no obvious implementation path.

hello@rnd.club ↗