Chapter 02 · OWASP Top 10 for Agentic Applications, 2026

AI That
Acts

Some AI does not answer. It sends, books, files, pays. That is the whole point, and it is also the problem: an agent with a mistake in it does not say something wrong, it does something wrong - and often before anyone reads the log.

10 risks 15 min read Try the permission simulator

An isometric robotic arm on a pedestal, its claw holding a hanging chain.
Every arm is a permission. Every crate is a tool someone else wrote.
Before the list

What makes an agent different

A chatbot produces one reply. An agent runs a loop: it plans, takes an action, looks at what happened, and plans again. The loop is why it can finish a task nobody wrote step by step - and why a single bad instruction can become ten real-world actions before a person sees anything.

1 Plan Decides the next step from context, tools, and memory.
2 Act Calls a tool: search, send, write, pay, run.
3 Observe Reads the result - including text an attacker wrote.
4 Repeat Goes round again. This is the part that scales.
A tool

One action, one input

"Summarise this text." No choice about what to do next. The blast radius is the function it calls.

A workflow

A fixed sequence

"Extract, validate, file." The steps are written down. You can audit the path because the path does not change.

An agent

Chooses its own path

"Get this resolved." The sequence is decided at runtime, by the model, from whatever it happens to read.

The agency dial

Autonomy is not a yes-or-no setting. Ask, for each capability: could this be done by a workflow instead? Most "agents" in production are workflows with a language model in the middle - and that is a feature, because a fixed sequence is auditable and a free-form one is not.

The list

The ten risks

Search, filter, and tick the ones you have handled. Each entry has the plain-English version, a real incident, and the control that would have stopped it.

Who
Severity
Showing all 10

0 of 10 marked understood

I
ASI01:2026 · Critical

Agent goal hijack

"Its instructions are quietly swapped for someone else's, and it follows the new ones."

What it is

Changing what the agent is trying to do. An agent cannot reliably separate its instructions from the content it processes, so an email, a tool response, or a message from another agent can all rewrite its objective. The agent keeps working diligently - towards the wrong goal.

How it goes wrong

EchoLeak: a crafted email caused Microsoft 365 Copilot to execute hidden instructions and leak confidential mail, files, and chat logs - with zero clicks and no user interaction.

How to fix it

  • Treat all natural-language input as untrusted, including tool output
  • Bind the goal in a signed, immutable intent record at task start
  • Re-check the goal at runtime and stop on drift
  • Require approval for any action that changes scope
  • Version and lock system prompts outside the model's reach

Remember The agent has no way to know that the document it just read was not instructions.

II
ASI02:2026 · Critical

Tool misuse and exploitation

"It uses its own tools the wrong way - legitimately, but harmfully."

What it is

An agent stays inside its permissions and still causes damage, because a legitimate tool was pointed at the wrong thing. No stolen password, no exploit, no malware - just curl being used as intended, with the output sent somewhere it should not go.

How it goes wrong

A security-automation agent is steered into chaining PowerShell, curl, and internal APIs to ship log files out of the estate. Every call is a trusted binary with valid credentials, so endpoint detection sees nothing unusual.

How to fix it

  • One narrow tool per job - never a general shell or HTTP client
  • Egress allowlist: it cannot call what it was not given
  • Policy check before execution, not after
  • Human confirmation on destructive or outbound actions
  • Adaptive budgets so a runaway loop hits a wall

Remember "Authorised user does authorised thing" is invisible to most monitoring. Bound the tool, not the user.

III
ASI03:2026 · High

Identity and privilege abuse

"It impersonates a trusted person, and gets access it should never have had."

What it is

Agents inherit trust rather than earn it: a manager's scope, a cached token, a peer's identity, a permission that expired halfway through a task. Because the agent's actions are attributed to whoever it acts as, the audit trail shows a person who never made the decision.

How it goes wrong

A "from IT" email tells a mail-sorting agent to instruct the finance agent to pay an invoice. The finance agent trusts an internal peer, so it never re-checks the original human intent - and the payment clears.

How to fix it

  • Short-lived, task-scoped tokens minted per task
  • One identity per agent; never a shared or admin account
  • Re-verify intent at each privileged step
  • Human approval for anything irreversible or unusual
  • Log the delegation chain, not just the final actor

Remember If the log says a person did it, be suspicious. It may have been the agent acting as them.

IV
ASI04:2026 · High

Agentic supply chain

"A plugin it downloads at runtime is secretly working for someone else."

What it is

Agents assemble their own capabilities: , plugins, agent cards, prompt templates. Each is third-party code running with your agent's permissions, and each is a place to hide an instruction.

How it goes wrong

The first in-the-wild malicious MCP server posed as "postmark-mcp" on npm and quietly BCC'd every outgoing email to the attacker. Separately, a poisoned prompt shipped inside Amazon Q for VS Code reached thousands of developers.

How to fix it

  • Allowlist servers and pin versions by hash
  • Read the manifest before you run the tool
  • Sandbox the agent; give each server its own credential
  • Sign and attest prompts and tool definitions
  • Stage rollouts, and keep a kill switch that works

Remember An agent that can install its own tools can be persuaded to install the wrong ones.

V
ASI05:2026 · Critical

Unexpected code execution

"It runs code that was hidden inside ordinary-looking text."

What it is

"Vibe coding" tools generate and run code in real time, often with shell access. That is a remote code execution engine wearing a friendly interface - and the input that reaches it may have arrived from a file, a web page, or a colleague's prompt.

How it goes wrong

A prompt disguised as a file request: "process this file: test.txt && rm -rf /data && echo done". The agent executes the embedded shell command. During a self-repair task, another agent overwrites production configuration it was never meant to touch.

How to fix it

  • Never feed model output to a shell - use an argument list, not a string
  • Run generated code in a disposable sandbox, never as root
  • Separate generation from execution with a review gate
  • Deny network egress from the sandbox by default
  • Make production a place the agent cannot reach at all

Remember If an agent can run code, it is a code execution platform. Give it a disposable machine.

VI
ASI06:2026 · High

Memory and context poisoning

"Its memory is quietly filled with false information, and it trusts it later."

What it is

Agents persist memory across sessions. Poison that memory once and every future decision inherits it - long after the original attack is over, and long after the conversation that caused it has been forgotten.

How it goes wrong

Prompt injection corrupts a long-term memory store, biasing every later session. A travel assistant is fed a fake flight price until it stores it as fact - then approves bookings at that price without flagging the anomaly.

How to fix it

  • Encrypt memory and scan writes before commit
  • Segment memory by user, session, and domain
  • Only accept memory from authenticated, curated sources
  • Expire unverified memory; keep snapshots for rollback
  • Stop the agent re-ingesting its own output as fact

Remember Memory is a database. Poisoning it is a write, so control the writes.

VII
ASI07:2026 · Moderate

Insecure inter-agent communication

"The AIs talk to each other on a channel anyone can listen in on."

What it is

Multi-agent systems coordinate over message queues, APIs, and shared memory. Weak authentication or integrity there lets an attacker intercept, spoof, replay, or silently drop what agents say to each other - and agents are unusually trusting of their peers.

How it goes wrong

A man-in-the-middle injects hidden instructions into an unencrypted agent channel, steering decisions while everything looks normal. Or a fake peer registers in the discovery service with a cloned schema and intercepts privileged traffic.

How to fix it

  • Mutual authentication between every pair of agents
  • Sign messages; reject anything unsigned
  • Anti-replay nonces and short validity windows
  • Authenticate discovery and require signed agent cards
  • Typed, versioned contracts with explicit audiences

Remember Agents cannot tell a colleague from someone claiming to be one.

VIII
ASI08:2026 · High

Cascading failures

"One mistake snowballs across every agent before a human can stop it."

What it is

A fault - a hallucination, a poisoned record, a bad tool result - propagates through a chain of agents, compounding at each hop. Each agent sees input that looks internally consistent, so nothing local looks wrong. The origin is small; the fan-out is systemic.

How it goes wrong

An injection skews a market-analysis agent's risk limits. Position and execution agents auto-trade larger positions while compliance sees only "within-parameter" activity - until the loss is firm-wide.

How to fix it

  • Circuit breakers and quotas between planner and executor
  • Isolate agents and segment the network between them
  • Cap total progress per task, not just per step
  • Replay changes against a digital twin before release
  • Tamper-evident lineage for every action

Remember Design for the failure you will not notice, not the one you will.

IX
ASI09:2026 · High

Human-agent trust exploitation

"It sounds so confident and helpful that we stop checking."

What it is

Agents earn trust through fluency and apparent expertise, and people defer to that. The agent becomes a persuasive intermediary: it does the reasoning, the human performs the final audited action, and accountability quietly evaporates.

How it goes wrong

A finance copilot ingests a poisoned invoice and confidently recommends an urgent payment to new bank details. The manager approves it - the agent was helpful, the explanation was clear, and nobody questioned the account change.

How to fix it

  • Confirm bank-detail changes out of band, always
  • Show provenance for every recommendation, not just a summary
  • Separate the preview from the effect
  • Flag low-certainty recommendations instead of smoothing them
  • Keep one human step that is genuinely independent

Remember The most dangerous agent is the one that is usually right.

X
ASI10:2026 · High

Rogue agents

"It quietly works towards its own goals instead of yours."

What it is

An agent drifts outside its intended scope - through goal drift, emergent behaviour, or a sub-goal it invented. Each action looks defensible on its own. The pattern is not. This is an insider threat that operates at machine speed and never takes a holiday.

How it goes wrong

An agent appears compliant while pursuing a hidden objective, gradually taking control of a trusted workflow and redirecting it. By the time behaviour is reviewed, data integrity and operational control are already compromised.

How to fix it

  • Grant autonomy only where it measurably adds value
  • Baseline normal behaviour, then alert on divergence
  • Bound blast radius with sandboxing and segmentation
  • Keep a kill switch you have actually tested
  • Make every action traceable to a named owner

Remember An untested kill switch is a rumour.

Try it

How fast does blast radius grow?

Six ordinary capabilities. Switch them on the way a well-meaning team would - one at a time, each with a good reason - and watch what the combination ends up requiring.

The permission simulator

Saved in this browser
Blast radius for: nothing yet 0%
What this combination now requires No gate needed yet. The agent cannot change anything outside its own context. Keep it that way until a task genuinely needs more.
The point is not that any single switch is reckless. It is that read + send + any URL is an exfiltration kit, and nobody had to make a bad decision to build one.
The pattern

Where to put the human

is the most-repeated advice in AI security and the most often implemented badly. A prompt that says "Approve? Y/N" is not oversight - it is a speed bump people learn to click through.

Oversight works when it is narrow and specific: this payment, this recipient, this amount. It fails when it is broad: "review the agent's plan" is a request to read a novel and hope.

Gate these

  • Money leaving the organisation
  • New recipients, domains, or bank details
  • Anything published under a person's name
  • Deletion, permission changes, and access grants
  • Irreversible actions, even small ones

Let these run

  • Reading and summarising approved sources
  • Drafting anything a person will send
  • Searching within a scoped dataset
  • Proposing a plan without executing it
  • Anything you can undo with one click

Sources

  • OWASP Top 10 for Agentic Applications (2026) - genai.owasp.org
  • OWASP Top 10 for LLM Applications (2025) - genai.owasp.org/llm-top-10
  • Incidents named here (EchoLeak, the postmark-mcp impersonation, the Amazon Q poisoned prompt) are drawn from public reporting and vendor disclosures.