Skip to main content
Announcement: Now accepting design beta partners · Read more

The Blog · August 25, 2026

Agent Egress Security, Done Right

One policy for the whole fleet, however fast it grows.

Daljeet, CEO/Founder

By Daljeet, CEO/Founder

LinkedIn

247 days

industry average to detect and contain a breach (IBM, 2026)

vs

2 lines

of Maya config to govern egress for an entire agent fleet

Containment takes 247 days when the policy lives in ten thousand places. It takes seconds when it lives in one.

It already happened

Two incidents from the past year. Both real, both agent-shaped, both contained the hard way: machine by machine, org by org.

Supply chain

Nx “s1ngularity”

August 2025 · npm ecosystem

6,700+

private repos made public

2,000+

verified secrets leaked

90%

of tokens still valid 24h later

Agent integration

Salesloft Drift

August 2025 · SaaS

700+

organizations affected

1

AI chat agent’s stolen tokens

offline

the product, entirely

In the Nx case a malicious package turned the AI CLIs themselves into the thief, launching them with --yolo and --trust-all-tools to hunt credentials and push them to attacker-controlled repos. Cleanup was every machine, by hand. (Wiz, OX Security)

In the Salesloft case the stolen OAuth tokens belonged to a single AI chat agent, and containment still meant disabling every integration and rotating credentials across hundreds of customers. (The Hacker News)

Neither was an outlier. The same IBM study puts the wider picture like this.

43%

of security incidents now involve shadow AI

+56%

AI-driven attacks, year over year

+$1M

added to average breach cost when AI is involved

The scoreboard

All breaches 247 days
Supply-chain breaches 258 days
Maya, on a deviation

Maya detects in milliseconds and contains in seconds. The bar is there; you just can’t see it at this scale.

Days to identify and contain, IBM Cost of a Data Breach 2026. The supply-chain number is the s1ngularity shape of attack.

Do this for Claude. And GPT. And Gemini.

Every frontier vendor now ships an egress control. Good. Here is what running them across a fleet actually looks like.

Claude · settings.json, per project

"sandbox": {
  "enabled": true,
  "network": {
    "allowedDomains":
      ["api.anthropic.com"]
  }
}

GPT / Codex · config.toml, per machine

# ~/.codex/config.toml
[sandbox_workspace_write]
network_access = false

# plus a domain policy map
# in newer builds

Gemini · env vars, per machine

export SEATBELT_PROFILE=
  restrictive-proxied
export GEMINI_SANDBOX_PROXY_COMMAND=
  ./your-allowlist-proxy.js

# yes, you write the proxy

Now repeat that. Every laptop. Every CI runner. Every repo. Every agent your agents spawn. Every version bump.

And your homegrown agents? LangChain, CrewAI, that Python script from Q2? No such switch exists. The fastest-growing part of the fleet has none of these controls.

The structural problem

The s1ngularity malware did not defeat these controls. It ran with --yolo.

Compromised host

agent runtimesandbox config lives here

--yolo walks past it

EXFIL

Same host, Maya below

agent runtimecompromised, --yolo and all

↓ ×

THE WIREpolicy the host can’t edit

undeclared egress dies here

A control that lives inside the runtime dies with the runtime. On a compromised host the sandbox config sits in the same blast radius as the agent it is meant to restrain.

Put the policy below the runtime and the same compromise changes nothing. The agent is still compromised, --yolo and all. Its undeclared egress just dies on the wire.

The difference is not a better sandbox. It is which side of the compromise the control sits on.


The Solution

Now do it ONE TIME with Maya

Line 1 · in the deployment config you already own, per agent

Environment="MAYA_AGENT_NAME=invoice-agent" "MAYA_AGENT_LABELS=team=finance"

Already emitting OTEL_SERVICE_NAME? Then line 1 is zero lines.

Line 2 · on the console, once, for the whole fleet

{team=finance} may only reach {ALL-LLMs} → block
agent agent agent next week’s agent next month’s fleet
ENFORCED ON THE WIRE · NO RESTARTS · NO SDK · NO TLS TERMINATION
Dashed boxes are agents that don’t exist yet. Already covered.

One policy, one tag. It covers the agents running now, next week's agents, and next month's fleet, because none of them have to be named.

Honest math: line 1 is one naming line per agent, or zero with OTEL. Line 2 is one policy sentence per fleet. The policy never multiplies.

Fleets do not get safer one config file at a time. They get governed in one place, or not at all.


Sources: Wiz on the s1ngularity aftermath, OX Security on how s1ngularity weaponized AI, The Hacker News on Salesloft Drift, IBM Cost of a Data Breach 2026, Claude Code sandbox settings, Codex config reference, Gemini CLI sandboxing.

We're taking on customers and a small number of design partners, both running agents in their own cloud. If that's you, we'd like to talk.

Newsletter

Get the white papers, free.

Subscribe and we'll send you our white papers on agentic network security, plus every new article as it publishes. No noise, unsubscribe anytime.

All posts

Cookies

We use analytics cookies to see how this site is used so we can make it better. Nothing is stored until you say yes. See our privacy policy.