Why the OWASP Top 10 for LLM matters in enterprise agents
OWASP maintains a Top 10 for Large Language Model Applications to help builders and defenders prioritize the most critical risks in LLM-based systems. For enterprises deploying agents that plan, use tools, retain memory, and chain multi-step actions, those risks are not abstract model flaws. They become control gaps at the boundary between untrusted content, model reasoning, and privileged infrastructure.
Security engineers should treat the list as a risk register and control map, not a checklist of prompt templates. Prompt injection can override system intent and steer tool selection. Insecure output handling turns model text into executable SQL, shell, URLs, or structured tool parameters. Sensitive information disclosure exposes PII, secrets, proprietary data, or system prompts through answers, logs, or retrieval-augmented flows. Excessive agency amplifies any of the above when the agent can invoke high-impact tools with broad standing credentials.
Recent OWASP iterations refine naming and scope, including stronger emphasis on system prompt leakage, vector and embedding weaknesses, misinformation, supply chain components, and unbounded consumption. Enterprises should pin control mapping to a specific OWASP version, then align prioritization to their own agent architectures: tool catalogs, RAG corpora, memory stores, and autonomy levels. Broader frameworks such as the NIST AI RMF (govern, map, measure, manage) reinforce the same operational pattern: define boundaries, instrument behavior, and continuously manage misuse, leakage, and unsafe autonomy.
How Top 10 risks manifest in tool-using architectures
In agentic systems, risk concentrates where planning, retrieval, and execution meet. Indirect prompt injection often enters through retrieved documents, ticket bodies, email, wiki pages, or memory writes. Once inside context, injected instructions can reshape multi-step plans, tool choice, and argument construction without an obvious malicious user prompt. Memory stores can persist malicious instructions across sessions if write paths are not filtered and segmented.
Improper output handling becomes critical when downstream components trust model text. Passing free-form output into browsers, shells, query engines, or tool brokers without schema validation, allowlists, and encoding creates classic injection paths in a new wrapper. Sensitive disclosure paths include over-collected RAG indexes, debug traces that capture system prompts or tool schemas, and models repeating secrets present in context. Excessive agency scales with autonomous loops, large tool catalogs, and credentials that outlive a single task.
Identity design determines whether least privilege is enforceable. End-user identity, agent service identity, and per-tool credentials must remain distinct so authorization and attribution do not collapse into a single shared principal. Supply chain exposure spans third-party models, plugins, training or fine-tune data, embedding pipelines, and dependencies that can introduce poisoned artifacts or vulnerable components. Unbounded consumption appears as uncontrolled tool loops, recursive planning, or unthrottled model calls that create cost overrun and denial of service.
Design implication: Treat retrieved content, memory, and tool results as untrusted input. Keep enforcement on the execution path, not only in the system prompt.
Map each risk category to concrete enterprise controls
A practical mapping keeps controls outside the prompt wherever side effects are possible. Input and tool mediation address prompt injection by separating untrusted content from control instructions, filtering retrieved text before it enters context, and refusing tool calls that would exfiltrate data or escalate privilege based on injected directives. Output encoding and strict schema validation address insecure output handling at the mediation layer, not only inside model instructions.
Sensitive information disclosure requires corpus segmentation by sensitivity, redaction before context assembly, secret scanning on outputs and logs, and tight access to system prompts and tool schemas. Excessive agency is reduced by least-privilege tool design: narrow APIs, time-bound credentials, environment isolation for high-impact tools, default deny on powerful actions, and human-in-the-loop approval for irreversible operations. Supply chain controls need inventory of models, plugins, retrieval sources, and dependencies, plus change control when any of those change. Unbounded consumption needs rate limits, cost budgets, recursion caps, and kill switches on agent loops.
Runtime policy checkpoints should be explicit: authenticate the caller; authorize the tool and action for that identity, tenant, and data classification; validate arguments against schemas and allowlists; block or transform disallowed content; require approval when risk exceeds policy; then execute and record. Evaluate gateways and agent runtimes on whether they can deny or modify tool calls, not merely log them after the fact.