The OWASP Top 10 for Agentic Applications 2026 (ASI01–ASI10) defines the ten most critical security risks specific to autonomous AI agent systems. Unlike general LLM risks, these risks arise from agents acting with real-world capability — calling tools, delegating to sub-agents, persisting memory, and making decisions autonomously. Prompt-level defenses are insufficient: OWASP LLM01:2025 states explicitly that “it is unclear if there are fool-proof methods of prevention for prompt injection,” and published research (Andriushchenko et al., ICLR 2025) reports 100% attack success rates against major frontier models under adaptive attacks. AGT’s response is to move enforcement out of the prompt entirely. Every tool call, delegation, and action is intercepted in deterministic application code before any model output reaches the wire — making unsafe actions structurally impossible rather than merely improbable.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/microsoft/agent-governance-toolkit/llms.txt
Use this file to discover all available pages before exploring further.
Coverage Summary
AGT achieves Full coverage for 7 of 10 ASI risks and Partial coverage for 3, with documented gaps and recommended mitigations for each partial item. There are 0 unaddressed gaps.| ASI ID | Risk Title | Coverage | Primary AGT Control |
|---|---|---|---|
| ASI01 | Agent Goal Hijack | ✅ Full | governanceMiddleware — blockedPatterns |
| ASI02 | Tool Misuse and Exploitation | ✅ Full | createGovernedTool — allow/deny-lists |
| ASI03 | Identity and Privilege Abuse | ✅ Full | PII redaction, RBAC in policy YAML |
| ASI04 | Agentic Supply Chain Vulnerabilities | ⚠️ Partial | Policy YAML tool pinning; no SBOM |
| ASI05 | Unexpected Code Execution (RCE) | ✅ Full | Static reviewer detects pickle/eval |
| ASI06 | Memory and Context Poisoning | ⚠️ Partial | Audit hash-chain; no memory sandbox |
| ASI07 | Insecure Inter-Agent Communication | ✅ Full | Trust-gate with DID verification |
| ASI08 | Cascading Agent Failures | ✅ Full | Circuit breaker, rate limiter |
| ASI09 | Human-Agent Trust Exploitation | ⚠️ Partial | Audit trail; no UI-level guardrails |
| ASI10 | Rogue Agents | ✅ Full | AgentBehaviorMonitor, quarantine |
Risk-by-Risk Coverage Map
ASI01 — Agent Goal Hijack (✅ Full)
ASI01 — Agent Goal Hijack (✅ Full)
governanceMiddleware intercepts every inbound message and applies a blockedPatterns check (regex) before the content reaches the LLM. Patterns are loaded from the policy YAML at runtime — not hardcoded in source — which means rules can be updated without a code release and cannot be reverse-engineered from a binary.agent-governance-python/agent-os/src/agent_os/governance/middleware.py—_check_blocked_patterns()agent-governance-python/agentmesh-integrations/copilot-governance/src/reviewer.ts— ruleno-prompt-injection-guards
ASI02 — Tool Misuse and Exploitation (✅ Full)
ASI02 — Tool Misuse and Exploitation (✅ Full)
createGovernedTool wraps every tool with an allow-list/deny-list check and per-tool rate limits enforced in code. The static reviewer flags any .execute() call that is not wrapped with governance. A tool not on the allowed_tools list cannot be called regardless of what the model requests.agent-governance-python/agent-os/src/agent_os/governance/tool_wrapper.pyagent-governance-python/agentmesh-integrations/copilot-governance/src/reviewer.ts— rulesunguarded-tool-execution,no-tool-allowlist
ASI03 — Identity and Privilege Abuse (✅ Full)
ASI03 — Identity and Privilege Abuse (✅ Full)
pii_fields configuration. The PII redaction middleware (_redact_pii()) strips sensitive fields before they are forwarded to any downstream service. RBAC enforces four roles (READER, WRITER, ADMIN, AUDITOR) with action-level permissions, and DID-based agent identity (did:agentmesh:{agentId}:{fingerprint}) ensures every action is attributed to a specific, verified agent.agent-governance-python/agent-os/src/agent_os/governance/middleware.py—_redact_pii()agent-governance-python/agent-os/src/agent_os/integrations/rbac.py— 4 roles: READER, WRITER, ADMIN, AUDITORagent-governance-python/agentmesh-integrations/copilot-governance/src/reviewer.ts— rulemissing-pii-redaction
ASI04 — Agentic Supply Chain Vulnerabilities (⚠️ Partial)
ASI04 — Agentic Supply Chain Vulnerabilities (⚠️ Partial)
allowed_tools pins the exact set of permitted tool IDs. The static reviewer detects hardcoded deny-lists (which attackers can reverse-engineer) and recommends externalised runtime config. SupplyChainGuard detects freshly-published packages (less than 7 days old), unpinned version specifiers, and typosquatting patterns in dependency names.Known Gap: AGT does not generate SBOMs or perform dependency vulnerability scanning natively. Microsoft recommends integrating with GitHub Advanced Security / Dependabot for dependency-level supply-chain coverage alongside AGT’s tool-level pinning.Key source files:agent-governance-python/agentmesh-integrations/copilot-governance/src/reviewer.ts— rulehardcoded-security-denylistagent-governance-python/agent-os/src/agent_os/supply_chain.py—SupplyChainGuard- Policy YAML schema:
allowed_tools,blocked_tools
ASI05 — Unexpected Code Execution / RCE (✅ Full)
ASI05 — Unexpected Code Execution / RCE (✅ Full)
pickle.loads(), eval(), exec(), or similar primitives that execute attacker-controlled data.AGT Deterministic Control: The static reviewer detects pickle.loads() without HMAC verification and flags it as Critical. The CodeSecurityValidator performs AST-based analysis of LLM-generated Python, detecting 17 dangerous import patterns and 22+ dangerous call patterns including shell injection, SQL injection, and path traversal. Policy rules block eval() and exec() via lint enforcement.Key source files:agent-governance-python/agentmesh-integrations/copilot-governance/src/reviewer.ts— ruleunsafe-deserializationagent-governance-python/agent-os/src/agent_os/secure_codegen.py—CodeSecurityValidator(AST-based)
ASI06 — Memory and Context Poisoning (⚠️ Partial)
ASI06 — Memory and Context Poisoning (⚠️ Partial)
MemoryGuard detects dangerous writes and poisoned content in agent context buffers.Known Gap: AGT does not yet provide a dedicated memory sandbox or application-layer context integrity checksums. A ContextValidator that hashes memory snapshots at write and read time is the recommended addition.Key source files:agent-governance-python/agent-os/src/agent_os/audit/hash_chain.pyagent-governance-python/agent-os/src/agent_os/memory_guard.py—MemoryGuard
ASI07 — Insecure Inter-Agent Communication (✅ Full)
ASI07 — Insecure Inter-Agent Communication (✅ Full)
agent-governance-python/agent-os/src/agent_os/trust/gate.pyagent-governance-python/agent-mesh/src/agentmesh/trust/handshake.py— Ed25519 challenge/responseagent-governance-python/agentmesh-integrations/copilot-governance/src/reviewer.ts— rulemissing-trust-verification
ASI08 — Cascading Agent Failures (✅ Full)
ASI08 — Cascading Agent Failures (✅ Full)
CascadeDetector monitors dependency chains for failure propagation patterns at the fleet level.Key source files:agent-governance-python/agentmesh-integrations/copilot-governance/src/reviewer.ts— rulemissing-circuit-breakeragent-governance-python/agent-os/src/agent_os/_circuit_breaker_impl.py—CircuitBreaker,CascadeDetectoragent-governance-python/agent-os/src/agent_os/governance/middleware.py—_rate_limit_check()
ASI09 — Human-Agent Trust Exploitation (⚠️ Partial)
ASI09 — Human-Agent Trust Exploitation (⚠️ Partial)
EscalationHandler) enforces human approval with M-of-N quorum requirements, fatigue detection, and timeout-defaults-to-DENY semantics for high-risk actions. The static reviewer flags code with no audit logging.Known Gap: No UI-level confirmation dialogs or built-in approval interfaces are included in AGT. The recommended addition is a HumanApproval middleware for high-risk irreversible actions, surfacing current agent state and consequences to the approver.Key source files:agent-governance-python/agentmesh-integrations/copilot-governance/src/reviewer.ts— rulemissing-audit-loggingagent-governance-python/agent-os/src/agent_os/integrations/escalation.py—EscalationHandlerwith quorum and fatigue detection
ASI10 — Rogue Agents (✅ Full)
ASI10 — Rogue Agents (✅ Full)
AgentBehaviorMonitor tracks per-agent behavioral metrics (tool call rate, failure rate, privilege escalation attempts, entropy of action distribution) and automatically quarantines agents that exceed configurable thresholds. KillSwitch provides immediate agent termination with six enumerated kill reasons: BEHAVIORAL_DRIFT, RATE_LIMIT, RING_BREACH, MANUAL, QUARANTINE_TIMEOUT, and SESSION_TIMEOUT.Key source files:agent-governance-python/agent-mesh/src/agentmesh/services/behavior_monitor.py—AgentBehaviorMonitoragent-governance-python/agent-hypervisor/src/hypervisor/security/kill_switch.py—KillSwitchagent-governance-python/agentmesh-integrations/copilot-governance/src/reviewer.ts— ruleno-behavior-monitoring
AGT Extension: Agent Traceability
In addition to the ten official ASI risks, AGT implements a traceability control that supports mitigation across multiple ASI risks — particularly ASI02, ASI08, ASI09, and ASI10. This is an AGT control objective, not an officialASI11 entry in the 2026 OWASP list.
Every governance decision produces an immutable audit entry where each record contains the SHA-256 hash of the previous entry, forming a tamper-evident chain. Any retrospective modification is immediately detectable.
agent-governance-python/agent-os/src/agent_os/audit/hash_chain.pyagent-governance-python/agent-mesh/src/agentmesh/governance/audit.py—MerkleAuditChain
Generating a Compliance Attestation
Use theagt verify command to run AGT’s built-in OWASP compliance check against your deployment. The command validates that governance controls are correctly configured and generates machine-readable evidence.
--strict flag is recommended for CI pipelines gating production deployments. It exits non-zero if any of the 7 fully-covered ASI risks have their corresponding controls disabled or misconfigured in the active policy.
System Architecture
The following diagram shows how AGT’s components are positioned in the request path relative to the ASI risks they address:Lessons Learned
The following findings from real-world AGT deployments inform the current design:Hardcoded deny-lists are discoverable
Stub verify() functions are a root cause
return True stubs in trust verification functions. The static reviewer now flags these as Critical severity.