Prompt injection is the unsolved one
Prompt injection is OWASP's number one entry for LLM applications: user or retrieved content alters the model's behaviour in unintended ways. It is unsolved because the model receives instructions and data in the same channel, with nothing marking which is which.
Why it is like this
Classic injection attacks were fixed by separating code from data β parameterised queries, escaping. A language model has no parameterised equivalent: the instruction and the document are both just text.
Not to be confused with
A filtering problem. Filters raise the cost of an attack and do not close the class. And the dangerous version is usually indirect: the instruction arrives inside a document, a web page or an email the system was asked to read, not from the user.
In practice
This is why an agent that reads untrusted content and holds real permissions is a different risk from a chatbot that does neither.
Source: OWASP Top 10 for Large Language Model Applications, 2025 β LLM01:2025 Prompt Injection. Read on .
The OWASP Top 10 for LLM Applications is Β© the OWASP Foundation and published under a Creative Commons licence; NIST AI 600-1 is a US Government work in the public domain. These cards are independent commentary written in our own words. ytyk.org is not affiliated with or endorsed by the OWASP Foundation or NIST.
Predict Check yourself
Why is prompt injection not fixable the way SQL injection was?
Show the answer
SQL injection was fixed by separating code from data in the protocol; a model receives instructions and data in one channel with no way to mark the boundary.
Knowing it is a structural property rather than a missing patch changes the design: you contain the blast radius instead of trying to sanitise the input.