AI Security Wiki GitHub

Home / Foundations / 5. Agents, Identity and Excessive Agency

5. Agents, Identity and Excessive Agency

5.1 Why agents change the risk

A model that only returns text can mislead. An agent, which plans, remembers, calls tools and iterates, can act. That converts a model error or a successful injection into an operational event: an email sent, a record changed, code merged, a cloud resource created. The OWASP Top 10 for Agentic Applications (published 9 December 2025 by the OWASP GenAI Security Project) describes the risks of systems that "plan, hold memory, call tools, and take actions across other systems with delegated authority" [12]. [Reported]

ID Risk (as listed in [12])
ASI01 Agent Goal Hijack
ASI02 Tool Misuse & Exploitation
ASI03 Identity & Privilege Abuse
ASI04 Agentic Supply Chain Vulnerabilities
ASI05 Unexpected Code Execution (RCE)
ASI06 Memory & Context Poisoning
ASI07 Insecure Inter-Agent Communication
ASI08 Cascading Failures
ASI09 Human-Agent Trust Exploitation
ASI10 Rogue Agents

Names taken from a secondary summary of the OWASP document; confirm exact wording against the primary source before quoting.

The Q1 2026 OWASP GenAI Exploit Round-up reports that agentic incidents featured excessive autonomy, unsafe confirmation flows and identity misuse, and that many AI incidents arose from architectural and trust-boundary flaws rather than discrete code vulnerabilities (which creates a gap with CVE-based tracking) [13]. [Reported] This is a summary of an eight-incident report over a limited period; do not generalise from it to prevalence.

5.2 Design principle: advisory output, enforced authority

Make model output advisory unless an independently enforced policy authorises the action. [Analysis]

Practically, this means the agent proposes and a deterministic layer disposes:

Model proposes action  →  Policy engine checks: who is the principal?
                                                  is this tool allowed for this task?
                                                  are parameters within limits?
                                                  does this need human approval?
                       →  Execute  /  Deny  /  Escalate to human
                       →  Log decision with full context

5.3 Non-human identity and least privilege

Agents need identities. The common failure is to run them under a developer's token, a shared service account or a broad API key. [Analysis]

Practice Rationale
One identity per agent (and ideally per task or session) Attribution and revocation without side effects
Short-lived, scoped credentials Limits value of a stolen or leaked token
Act on behalf of the user, not above them Prevents the agent from becoming a privilege-escalation path (confused-deputy problem)
Separate read and write capabilities Most tasks do not need write access
No secrets in prompts, memory or logs Prompts and context are not a secure store; they can be leaked (LLM07) [11]
Explicit delegation records Who authorised what, for how long, for which scope
Kill switch Ability to revoke credentials and halt execution quickly

5.4 Tools

Each tool is an interface to an external system and should be treated like any other API exposed to an untrusted caller:

  • Allow-list tools per task; do not expose the full catalogue by default.
  • Validate parameters against schemas and business limits outside the model.
  • Prefer narrow, purpose-built tools to general ones (a "send invoice reminder" tool rather than "send arbitrary email"; a read-only query tool rather than raw SQL).
  • Treat tool descriptions and tool results as untrusted text that can carry injected instructions.
  • Sandbox code execution; deny network and filesystem access by default.
  • Vet third-party tool servers and plugins as supply-chain components (see Page 6).

5.5 Approval gates

Human-in-the-loop is a control only if the human can make an informed decision and the gate cannot be bypassed.

  • Gate on impact, not on frequency: irreversible, external, financial, privilege-changing or bulk actions.
  • Show the reviewer the actual action and parameters, not only the model's description of it. The Round-up cites "unsafe confirmation flows" as a pattern [13].
  • Watch for approval fatigue. Too many low-value prompts train people to approve everything. [Analysis]
  • Define autonomy limits per agent: maximum transaction value, maximum duration, maximum number of actions per run.

5.6 Memory and multi-agent systems

  • Persistent memory is a new write path for attackers: poisoned memory can influence future sessions (ASI06) [12]. Provide integrity controls, expiry, and the ability to inspect and purge.
  • Agent-to-agent messages should carry no implicit trust. Authenticate agents, scope what each can request of another, and avoid designs where a low-trust agent can instruct a high-trust one (ASI07, ASI08) [12].
  • Cascading failure: a wrong output from one agent can be consumed as fact by the next. Place validation between stages.

5.7 Agent worksheet

For each agent, record: available tools; permissions; data sources; action types; approval requirements; memory stores; external communications; maximum transaction value; maximum autonomous duration; emergency shutdown mechanism. (Template in Appendices.)