Skip to content

fix(ai-red-teaming): authenticate agentic attacks + lighten ATLAS default budget - #171

Merged
rdheekonda merged 2 commits into
mainfrom
fix/airt-atlas-default-budget
Oct 12, 2026
Merged

rdheekonda merged 2 commits into
mainfrom
fix/airt-atlas-default-budget

Conversation

@rdheekonda

@rdheekonda rdheekonda commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Final capabilities fixes for the agentic red-teaming flow, validated live on prod (project airt-tui-verify) in edit mode.

1. Agentic attacks ran unauthenticated against provisioned targets (critical)

provision_environment returned the one-shot bearer execute token as text and told the agent to "set AGENT_API_KEY", but nothing injected it into the attack subprocess: generate_* only took the env-var name, and the runner never set the value. The generated agent target read an empty token, called the mesh unauthenticated, got no response, and every trial errored -> ASR 0% / all info on a trivially-exploitable target. (SDK notebooks were unaffected - their target closure captures the token in-process, which is why the SDK path "worked great end to end".)

Fix:

  • provision_environment persists base_url + execute_token in the env registry.
  • _auto_execute_workflow injects that token into the subprocess env under each token-like var the generated script reads (matched by the script's target URL against the registry). Single choke-point -> covers atlas / agentic / multistep / ci-exfil uniformly.

2. ATLAS default budget too heavy for interactive use

generate_atlas_attack defaulted total_budget=64, so one TUI call ran 15+ minutes. Default to 12 (the cookbook demo config). Raise for deeper sweeps.

Validation (prod, edit mode, airt-tui-verify)

  • ATLAS: 2x critical (transfer_funds + admin_create_user, real tool evidence) - was ASR 0% / "(no response)" before.
  • multistep: 5 chains fired, all replay-stable, non-empty tool_calls.
  • GOAT (generate_agentic_attack): read_file -> fetch_url/send_email exfil fired, 100% ASR.
  • All findings land as critical with tool-call evidence + traces.

Test plan

  • Re-run each agentic cookbook scenario via the TUI and confirm findings land critical with tool calls.

… -> 12)

generate_atlas_attack defaulted total_budget to 64 episodes, so a single
TUI/agent call ran a full multi-objective ATLAS campaign for 15+ minutes -
far too heavy for interactive use. Default to 12 episodes (the cookbook
demo config that reaches ASR 1.0 in ~1-2 min); callers can raise it for a
deeper sweep. Bumps capability to 1.18.5.
… targets

The provisioned environment's one-shot bearer execute token was never injected
into the attack subprocess: provision_environment returned it as text (telling
the agent to "set AGENT_API_KEY"), generate_* only took the env-var NAME, and
the runner never set the value. The generated agent target therefore read an
empty token (AGENT_API_KEY / <SCENARIO>_EXECUTE_TOKEN), called the mesh
unauthenticated, got no response, and every trial errored -> ASR 0% / all info
on a trivially-exploitable target. (SDK notebooks were unaffected: their target
closure captures the token in-process.)

Fix:
- provision_environment now persists base_url + execute_token in the env
  registry (environments.py).
- _auto_execute_workflow injects that token into the subprocess env under each
  token-like var the generated script reads (matched by the script's target URL
  against the registry), so the target is called authenticated. Single
  choke-point -> covers atlas / agentic / multistep / ci-exfil uniformly.

Validated live on prod (project airt-tui-verify, edit mode): ATLAS 2x critical
(transfer_funds + admin_create_user), multistep 5 chains fired replay-stable,
GOAT read->exfil fired - all with real tool-call evidence, vs ASR 0% before.
@rdheekonda rdheekonda changed the title fix(ai-red-teaming): lighten generate_atlas_attack default budget (64 -> 12) fix(ai-red-teaming): authenticate agentic attacks + lighten ATLAS default budget Oct 12, 2026
@rdheekonda rdheekonda reopened this Oct 12, 2026
@rdheekonda
rdheekonda merged commit 563a38f into main Oct 12, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant