| Indirect injection | Retrieved pages, tickets, emails, PDFs, OCR output, connector data | Untrusted context is treated as higher-priority instruction once it reaches the prompt | Prompt injection protection, provenance, retrieval hygiene |
| Persistent or memory injection | Summaries, saved notes, vector store chunks, long-term memory | Attacker text survives and reappears in later tasks after the original request is gone | Memory write controls, replay checks, retention limits |
| Cross-agent injection | Planner output, worker handoff messages, delegated task summaries | One agent over-trusts another agent’s text and inherits unsafe instructions | Trust tagging, scoped handoffs, approval before execution |
| Multimodal injection | Images, screenshots, OCR text, mixed image-and-text payloads | Hidden or visual text becomes model context even though it did not arrive as a normal prompt | OCR isolation, boundary checks, output validation |
| Tool-output injection | Browser results, search snippets, connector responses, logs | Tool text is fed back into the model as if it were trusted system guidance | Tool-output checks, provenance, least privilege |
| Descriptor or manifest injection | Tool descriptions, schemas, fetched manifests, dynamic metadata | The tool contract itself steers the model toward unsafe behavior | Review, allowlists, descriptor change control |
| MCP-specific injection | Server metadata, tool docs, tool output | Trust moves from server description to unsafe action without validation or approval | Server scoping, approval gates, audit logs |