Fail-Closed Authorization for Tool-Using AI Agents: A Capability Contract and Case Study

For tool-using LLM agents the decisive question is whether a concrete tool call is authorized before it executes. We describe the Agent Security Contract (ASC), a deny-by-default, pre-execution gate for agent and MCP tool calls. An ASC policy pins a SHA-256 digest of the approved tool catalog, declares per-agent tool allowlists with argument constraints, marks high-impact tools that require out-of-band approval, and bounds call rates; each decision (ALLOW, BLOCK, REQUIRE_APPROVAL) is emitted as an integrity-checked (unkeyed) JSON evidence envelope, and every error path we enumerate and test resolves to BLOCK. We evaluate the open-source implementation on static, recorded tool-call traces only; no live agent is run. Bypasses of the v0.1.0 demo policy found in review were fixed in v0.2.0; on a 60-case adversarial probe, allowed attacks fall from 32 to 1 (a policy gap), at the cost of 3 new benign over-blocks. On the author-constructed 66-scenario v0.2.1 corpus, designed around these checks, ASC returns the expected verdict in 66/66 cases; tool-name RBAC (Python and OPA/Rego) admits 30 of its 33 attacks by construction, and mutation testing shows the corpus exercises few policy constraints (8 of 62 single-constraint mutants killed). As a held-out check we replay 132 AgentDojo v1.2 ground-truth traces under policies frozen beforehand. With tool-level approval policies, 25 of 26 non-empty attack traces but also 60 of 97 benign tasks are held for approval. v0.2.0’s strict-argument rule makes these unadapted policies block 94 of 97 benign tasks. Policies derived mechanically from AgentDojo’s tool signatures first hit v0.2.0’s lack of optional arguments (31 benign blocks); with v0.2.1 they reproduce the tool-level verdicts on all 132 traces, with no blocks and no newly admitted attack, so type-only declarations add no protection here. Median in-process latency is about 38 us per trace.

Authors

Publication Details

Journal
Zenodo (CERN European Organization for Nuclear Research)
Published
2026-11-09
DOI
https://doi.org/10.5281/zenodo.24075885
Primary Topic
Access Control and Trust
Type
preprint
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
NOV
preprint

Fail-Closed Authorization for Tool-Using AI Agents: A Capability Contract and Case Study

Andrey Lesnikov
Zenodo (CERN European Organization for Nuclear Research)
Access Control and Trust
preprint

Fail-Closed Authorization for Tool-Using AI Agents: A Capability Contract and Case Study

Andrey Lesnikov
preprint en

Abstract

For tool-using LLM agents the decisive question is whether a concrete tool call is authorized before it executes. We describe the Agent Security Contract (ASC), a deny-by-default, pre-execution gate for agent and MCP tool calls. An ASC policy pins a SHA-256 digest of the approved tool catalog, declares per-agent tool allowlists with argument constraints, marks high-impact tools that require out-of-band approval, and bounds call rates; each decision (ALLOW, BLOCK, REQUIRE_APPROVAL) is emitted as an integrity-checked (unkeyed) JSON evidence envelope, and every error path we enumerate and test resolves to BLOCK. We evaluate the open-source implementation on static, recorded tool-call traces only; no live agent is run. Bypasses of the v0.1.0 demo policy found in review were fixed in v0.2.0; on a 60-case adversarial probe, allowed attacks fall from 32 to 1 (a policy gap), at the cost of 3 new benign over-blocks. On the author-constructed 66-scenario v0.2.1 corpus, designed around these checks, ASC returns the expected verdict in 66/66 cases; tool-name RBAC (Python and OPA/Rego) admits 30 of its 33 attacks by construction, and mutation testing shows the corpus exercises few policy constraints (8 of 62 single-constraint mutants killed). As a held-out check we replay 132 AgentDojo v1.2 ground-truth traces under policies frozen beforehand. With tool-level approval policies, 25 of 26 non-empty attack traces but also 60 of 97 benign tasks are held for approval. v0.2.0’s strict-argument rule makes these unadapted policies block 94 of 97 benign tasks. Policies derived mechanically from AgentDojo’s tool signatures first hit v0.2.0’s lack of optional arguments (31 benign blocks); with v0.2.1 they reproduce the tool-level verdicts on all 132 traces, with no blocks and no newly admitted attack, so type-only declarations add no protection here. Median in-process latency is about 38 us per trace.

Zenodo (CERN European Organization for Nuclear Research)
Access Control and Trust
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

Laika access coming soon