TCL Portal

OWASP LLM Top 10: A Guide to the 2026 Risks

By: Sekiko Jo (pen name, TCL Security Editorial Desk) Published:
  • #AI Security
  • #OWASP
  • #LLM Security
  • #Prompt Injection
  • #AI Governance

This guide sits alongside our AI Security Governance hub and our guide to generative AI security for the enterprise. If those pieces answer “how do the pieces fit into one program,” this one answers “what specifically am I supposed to test for.”

Most teams that adopt the OWASP Top 10 for LLM Applications do it the same way they adopted the original OWASP Web Top 10 fifteen years ago: as a compliance artifact, something to point to in a vendor security questionnaire. That undersells it. The list — maintained by the OWASP Gen AI Security Project and now in its 2025 edition — is closer to a test plan than a policy document. Each entry names a failure mode you can actually reproduce against your own application, and most of them map directly onto something an AI red team exercise should be checking for.

This guide walks through all ten risks, with an emphasis on the ones that show up most often in real LLM deployments: prompt injection, sensitive information disclosure, and the supply chain and agency risks that get harder to control as applications move from single-turn chat to autonomous agents.

What the OWASP LLM Top 10 Covers

The OWASP Top 10 for LLM Applications is a ranked list of security risks specific to systems built on large language models — chatbots, retrieval-augmented generation (RAG) pipelines, coding assistants, and increasingly, autonomous agents that call tools and take actions. It’s maintained by the OWASP Gen AI Security Project, the same community-driven body behind the original OWASP Top 10 for web applications, and it gets revised as new attack patterns are documented in the wild.

The current (2025) edition is:

  1. LLM01: Prompt Injection — untrusted input changes model behavior in unintended ways.
  2. LLM02: Sensitive Information Disclosure — the model exposes PII, credentials, or proprietary data in its output.
  3. LLM03: Supply Chain — vulnerable or malicious third-party models, datasets, packages, or plugins.
  4. LLM04: Data and Model Poisoning — manipulated training, fine-tuning, or embedding data introduces backdoors or bias.
  5. LLM05: Improper Output Handling — model output is passed to downstream systems (a shell, a browser, a database query) without validation.
  6. LLM06: Excessive Agency — the system grants the model too much functionality, too many permissions, or too much autonomy.
  7. LLM07: System Prompt Leakage — the system prompt, sometimes used to hold access logic, is extracted and used to bypass controls.
  8. LLM08: Vector and Embedding Weaknesses — weaknesses in how vectors and embeddings are generated, stored, or retrieved in RAG systems allow injection or unauthorized retrieval.
  9. LLM09: Misinformation — the model produces false or misleading output that users over-trust (a 2025 rename and refocus of the older “Overreliance” category).
  10. LLM10: Unbounded Consumption — uncontrolled resource or query use enables denial of service and runaway cost.

Two things changed meaningfully between the 2023 and 2025 editions, and both are worth noting if you last looked at this list a couple of years ago. First, Overreliance became Misinformation — the risk isn’t just that users trust the model too much, it’s that the model actively generates and propagates false information that users then act on. Second, System Prompt Leakage (LLM07) and Vector and Embedding Weaknesses (LLM08) are new entries, reflecting how much more common RAG architectures and instruction-bearing system prompts have become since the list’s first release.

Prompt Injection: The #1 Risk

Prompt injection has held the top spot in every edition of the list, and the reason is structural rather than a matter of any one vendor’s implementation being weak: any application that accepts untrusted natural-language input and lets that input influence what the model does has some prompt injection surface, by design. There’s no equivalent of parameterized queries for natural language — you can’t cleanly separate “instructions” from “data” the way SQL separates a query from its parameters, because the model reads both in the same channel.

The category splits into two patterns that get tested differently:

For RAG applications and AI agents that browse, read email, or process uploaded documents, indirect injection is usually the higher-value thing to red-team first, since it’s the pattern least likely to have been tested during initial development.

Sensitive Information Disclosure and Data Leakage

LLM02 covers the model exposing PII, credentials, internal system details, or proprietary data it shouldn’t — either because that data was in its training set, because it’s being retrieved from a RAG source the requesting user shouldn’t have access to, or because the model infers and states something it was never explicitly told. This last variant is easy to miss in testing: a model can leak sensitive information it was never directly given, by combining fragments of context it does have access to.

The practical control surface here has three layers, and testing usually needs to hit all three separately:

  1. Training and fine-tuning data. Does the training pipeline scrub PII and secrets before they reach the model?
  2. Retrieval authorization. In a RAG system, does the retrieval layer enforce the same access controls as the underlying data source — or does the LLM effectively become a way to bypass row-level permissions?
  3. Output filtering. Is there a check on what the model actually says, independent of what it was authorized to know, since models can restate or paraphrase sensitive fragments they picked up from context?

The second layer is the one most commonly missed in RAG deployments built quickly: the vector store often doesn’t carry the same permission metadata as the source system, so once a document is embedded, any authenticated user of the chatbot can retrieve chunks from it regardless of whether they’d have access to the original document.

Supply Chain and Excessive Agency Risks

Supply chain (LLM03) extends the familiar software supply chain problem to the LLM stack specifically: base models pulled from a public hub without provenance checks, fine-tuning datasets of unknown origin, LoRA adapters, and third-party plugins or tool integrations. The failure mode that’s specific to LLMs (rather than shared with general software supply chain risk) is that a poisoned or backdoored model can behave normally on almost every input and only trigger malicious behavior on a narrow, attacker-chosen trigger — which makes it much harder to catch in normal QA than a compromised software package.

Excessive agency (LLM06) is the risk category that scales fastest as applications move from chatbots to agents. It covers three related things, and it’s worth testing each independently:

The common thread across supply chain and excessive agency is that both get worse the more capability an application delegates to the model without a corresponding increase in verification. A single-turn chatbot with no tool access has a much smaller blast radius on both fronts than an agent with file system, email, and payment tool access — which is exactly why agentic deployments deserve a fresh pass through the whole list rather than reusing a threat model built for a simpler chatbot.

How to Use the List as a Testing Checklist

The list works best treated as ten categories of test, not ten boxes to check off in a spreadsheet. A workable starting sequence:

  1. Map your architecture against the list first. A single-turn chatbot with no tool access and no RAG has real exposure to maybe four or five of the ten categories. An agent with RAG, tool access, and multi-turn memory is exposed to all ten, and the ones with the largest blast radius (excessive agency, improper output handling) deserve disproportionate attention.
  2. Test indirect prompt injection specifically, not just direct instruction overrides — it’s the pattern most likely to be missing from an existing test plan.
  3. Trace the RAG retrieval path for authorization gaps, independent of whether the underlying data source itself is correctly permissioned.
  4. Inventory agent tool permissions against actual task requirements, and flag any tool grant that’s broader than the task needs.
  5. Feed findings back into policy and training, not just a one-time patch — a red team exercise whose results don’t change anything about how the next feature ships is a test, not a control.

None of this replaces a broader AI security governance program — the OWASP list is a vulnerability checklist for testing, not a framework for running a program end to end. For the governance layer that sits around it (who approves a new integration, how findings get tracked, how the program matures over time), see the AI Security Governance hub.

Sources

FAQ

What is the OWASP Top 10 for LLM Applications?

A community-maintained ranking, published by the OWASP Gen AI Security Project, of the ten most common and impactful security risks in applications built on large language models. It runs from LLM01 (Prompt Injection) to LLM10 (Unbounded Consumption) and is updated as new attack patterns emerge — the 2025 edition replaced Overreliance with Misinformation and added System Prompt Leakage and Vector and Embedding Weaknesses.

Is prompt injection still the top risk?

Yes. Prompt Injection (LLM01) has held the top slot since the list's first release, because it is the one risk category nearly every LLM-integrated application is exposed to by design: any system that accepts untrusted natural-language input and lets that input influence model behavior has some form of prompt injection surface.

How is the OWASP LLM Top 10 different from the OWASP Web Top 10?

The Web Top 10 assumes a relatively fixed attack surface — inputs go through defined parameters, and validation logic can be exhaustive. The LLM Top 10 assumes the input surface is natural language itself, which cannot be exhaustively validated the way a SQL parameter can. That's why several LLM risks (prompt injection, misinformation, excessive agency) don't have a clean equivalent in traditional web application security.

Can I use the OWASP LLM Top 10 as a testing checklist?

It's designed to be used that way. Each risk category maps to specific things a security team or AI red team can test for — injected instructions in retrieved documents, PII in model output, unpinned dependencies in the model supply chain, tool permissions an agent shouldn't have. Treat it as the first ten rows of a test plan, not the whole plan.

About the authors