paper · First submission: February 23, 2023
Not what you've signed up for: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection
Attacker-controlled retrieved material can become instructions, redirecting an assistant and the tools it is allowed to use.
- Revision: May 5, 2023
Kai Greshake, Sahar Abdelnabi, Shailesh Mishra, Christoph Endres, Thorsten Holz and Mario Fritz study how an attacker can redirect an assistant without speaking to it directly. Instead, the attacker places instructions in material that the application retrieves: a webpage, email or code file. The central indirect prompt-injection failure is a change of authority—content supplied for a task begins to control how the task is performed.[1]
The attacker controls data, not the user’s request
A legitimate user might ask for information or help with an email. The attacker needs influence over a source the assistant will encounter, rather than access to that user’s conversation. The paper distinguishes passive delivery through retrieval, active delivery such as sending an email, user-driven encounters, and instructions hidden from the ordinary page view. Whether an injection can do harm also depends on the tools and information the application exposes.[1]
The authors organize possible consequences into information gathering, fraud, malware-related behavior, intrusion, manipulated content and availability failures. These are a threat taxonomy, not counts of incidents. Their analogy to executing instructions emphasizes that retrieved language can steer control flow; it does not mean that every text injection directly executes arbitrary operating-system code.[1]
What the demonstrations actually ran
The synthetic applications use OpenAI models with mock search, page viewing, URL retrieval, email, address-book and key–value memory interfaces. All interfaces return prepared content, ignore unrelated queries and cannot contact real systems or websites. Attacks run at temperature zero. This makes the demonstrations controlled examples of possible application behavior, rather than evidence of messages sent to actual victims.[1]
Separate Bing Chat tests use Microsoft Edge’s sidebar, which can read the current page. The researchers place instructions in local HTML comments, avoiding public pages that another user might retrieve. They also test GitHub Copilot, where comments in a source file can steer generated code; they report that this behavior is sensitive to the surrounding context. The synthetic applications, browser tests and code-completion tests have different capabilities and should not be treated as one end-to-end compromise.[1]
Why ordinary retrieval can become an action
In one information-gathering demonstration, the injected instruction persuades the assistant to ask the user for a name and place it in a search or URL request. The intended read operation becomes an outgoing information channel. The authors test this pattern in both a synthetic application and Bing Chat; their discussion of targeting journalists or whistle-blowers is a hypothetical threat model, not a documented affected population.[1]
Other demonstrations explore persistence and propagation. A synthetic memory store can save an instruction that reappears in a later conversation, while an email-equipped mock agent can spread injected content. These examples make the application’s storage and communication permissions part of the security problem. They do not establish a worm spreading through real inboxes or persistent compromise of a production model.[1]
From feasibility to a security boundary
The work establishes feasibility through selected demonstrations, not attack-success rates across representative users or robust exploit reproduction. The authors note changes in black-box services, prompt sensitivity and missing quantitative evaluation. Their local tests also leave the difficulty of getting a poisoned public source retrieved outside the experiment. The account describes historical systems, rather than certifying how present products behave.[1]
The first arXiv submission was February 23, 2023; this account follows v2, revised May 5. Greshake and Abdelnabi share equal-contribution credit. The Instruction Hierarchy: Training LLMs to Prioritize Privileged Instructions subsequently tests training for instruction priority; system-level defenses ask how to constrain what an application can do. The original paper’s lasting distinction is that trustworthy output generation and authorized tool use require knowing whose instructions the assistant is following.[1]
Sources
Pages that link here
Concept (1)
Person (1)
Papers (2)
Article updated 2026-10-20