Key takeaways

  • Assume text retrieved from users, files, websites, messages and tools can carry adversarial instructions; provenance does not turn content into authority.
  • Reduce blast radius with least-privilege tools, deterministic authorization, typed data flow, explicit approvals and fail-closed execution—not a stronger system prompt alone.
  • Test complete attack paths and consequential outcomes, including data disclosure and unauthorized actions, rather than counting blocked attack phrases.
  • Reject or redesign the workflow when a model can combine untrusted content, sensitive context and consequential authority without an enforceable boundary.
  • A passing test supports only the tested configuration and attack set; it does not prove that prompt injection has been solved.
01

The decision: deploy, constrain or reject this authority path

Approve a production workflow only when each path from untrusted content to sensitive data or consequential action has a deterministic boundary, a named owner and evidence from adversarial tests. Constrain it to read-only or draft-only operation when outcome quality is useful but action safety is unresolved. Reject or redesign it when the model can turn untrusted content into unreviewed authority, cross a mandatory data boundary, or trigger an irreversible consequence without a reliable control.

This deploy–constrain–reject rule is AccessAllGPT guidance. It is deliberately about one configured system: model and version, prompts, retrieved sources, tools, identity, permissions, approval behavior, output parser, retries and fallbacks. Neither a model family nor an agent framework earns a general security approval.

02

What the evidence establishes—and where it stops

OWASP LLM01:2025 defines direct prompt injection as user input that changes model behavior unexpectedly and indirect injection as instructions arriving through external sources such as files or websites. OWASP says impact depends on business context and model agency, lists disclosure and unauthorized function access among possible outcomes, and says fool-proof prevention methods are unclear. Its mitigation list is security guidance, not evidence that any single control is sufficient.

The 2023 indirect prompt-injection paper describes the blurred boundary between data and instructions and reports attacks against named historical real and synthetic systems. It demonstrates practical attack paths in that scope; it does not provide a current industry prevalence rate or show that every present-day model and application is exploitable. NIST AI 100-2 E2025 supplies a broader adversarial-ML taxonomy and mitigation vocabulary, not a certification test for this workflow.

03

Map content, secrets and authority before testing prompts

Inventory every content ingress: chat input, documents, retrieval indexes, web pages, email, issue text, code comments, images, tool output, memory and messages from other agents. For each source, record who can influence it, whether it is authenticated, its tenant and sensitivity, and where it enters a model-visible context. Treat remote content as untrusted even when it comes from a familiar domain; an attacker may control a page fragment, document or upstream record.

Then inventory what the configured system can read and do: hidden instructions, conversation history, customer data, credentials, repositories, network destinations, database operations, messages, purchases, deployments and permission changes. Draw paths from each untrusted source to each sensitive read or action. This threat map is AccessAllGPT implementation guidance; it should be reviewed with the organization’s security and data owners.

04

Keep data from silently becoming authority

Label and transport untrusted content as data. Do not concatenate retrieved text into a privileged instruction channel or allow free-form model output to become the next tool’s instruction. OpenAI’s current vendor guidance advises against placing untrusted variables in developer messages and recommends structured outputs to constrain data flow. Those recommendations describe one vendor’s implementation approach; they are not independent proof of safety or a portable protocol guarantee.

Use typed fields with allowlisted destinations and operations between model steps. Parse outside the model, reject extra fields, cap lengths and cardinality, and bind each proposed action to the authenticated user, tenant and current request. Structured output can narrow a channel, but a syntactically valid request may still be malicious or unauthorized. Authorization must be computed by trusted application code.

05

Make least privilege real at execution time

Give each tool the smallest identity, resource set, operation set, network reach and duration required for the approved task. Separate read from write tools and separate tenants at the credential and data-query layers. Do not expose a general shell, unrestricted HTTP client or broad cloud credential merely because the model is instructed to use it carefully.

Enforce policy after the model proposes an action and before the tool executes it. Re-check object-level authorization, tenant, destination, parameters, data classification, rate, spend and consequence. Resolve resources from server-side identifiers rather than model-supplied credentials or arbitrary URLs. Least privilege limits impact; it does not make injected instructions trustworthy.

06

Place informed approval at the consequence boundary

Require approval immediately before sending, publishing, deleting, purchasing, deploying, changing access or exposing sensitive data when the consequence exceeds the workflow’s automatic authority. Show the reviewer the exact action, target, material inputs, source provenance, data that will leave the boundary, policy checks and rollback. Do not ask a reviewer to approve an opaque chain-of-thought or a generic “continue?” prompt.

OpenAI’s agent-safety page advises keeping tool approvals enabled; OWASP includes human approval for high-risk actions among layered mitigations. These are guidance statements, not measured guarantees. Approval fails when reviewers are habituated, the displayed action differs from execution, or a retry bypasses the gate. Bind approval transactionally to the reviewed parameters and expire it when material inputs change.

07

Control disclosure as a separate failure class

Do not rely on a system prompt to protect secrets that the model can read. Keep credentials out of model context, retrieve sensitive fields only after deterministic authorization, minimize returned columns, redact where the task permits and separate tenants before retrieval. Apply egress policy to tool arguments and final outputs, including destinations chosen by the model.

Create canary records for tests, but never place live secrets in an attack suite. Test whether content from one source can cause disclosure into another channel: a response, URL parameter, message, log, tool call or stored memory. A model refusing to print a secret in chat does not prove that it cannot transmit the same value through a tool.

08

Build an adversarial suite around complete attack paths

Include direct instructions, indirect instructions in every supported content type, encoded or obfuscated variants, conflicting authority cues, multi-turn persistence, tool-output injection, cross-tenant references, malformed structured data and payloads that become active only after retrieval or summarization. Test benign documents that resemble attacks so a defensive filter does not destroy the product’s useful workload.

Score outcomes, not phrases. Record unauthorized reads, unauthorized action attempts, policy-engine denials, approval presentation, reviewer decisions, secret egress, cross-tenant access, unsafe tool arguments, task completion and false blocks. Preserve traces with sensitive values redacted, and distinguish a model refusal from a deterministic control that prevented execution.

09

Predeclare gates, uncertainty and stop conditions

Before running candidates, define non-compensable failures: any cross-tenant disclosure, credential exposure, unapproved high-consequence action, approval mismatch or prohibited destination can be an automatic rejection. Set workload acceptance and false-block thresholds separately. State attack families, case counts, repetitions, evaluator rules, missing-run handling and what evidence would trigger more testing.

A finite suite can show known failures and verify that named controls operated on tested cases; it cannot prove absence of unknown attacks. Report counts and case-level outcomes without converting a small, hand-built suite into a universal “security score.” This evidence contract and decision rule are AccessAllGPT guidance, not a threshold prescribed by OWASP, NIST, the research paper or OpenAI.

10

Test control failure, not only model failure

Disable or break one layer at a time in a safe environment: parser rejection, authorization service timeout, approval-service delay, retrieval metadata loss, stale identity, tool error, retry after denial and logging outage. Verify fail-closed behavior for sensitive actions and a usable degraded path for legitimate work. A layered architecture is only as strong as its behavior when a layer is unavailable or misconfigured.

Run an end-to-end tabletop for the highest-consequence path. Name who can stop execution, revoke credentials, remove poisoned content, invalidate memory, inspect affected actions, notify owners and restore a clean configuration. Preserve model, prompt, policy, tool and corpus versions so an incident can be reconstructed without treating opaque model behavior as the only cause.

11

Authorize a bounded rollout and watch the authority boundary

Start with the least sensitive data, lowest consequence, smallest user cohort and narrowest tools that can answer the business question. Set time, traffic, tenant, spend and action ceilings plus an expiry date. Monitor policy denials, approval changes, unusual destinations, sensitive-data detections, retrieval provenance gaps, repeated retries and shifts in task failure—not raw prompt text alone.

Rollback to read-only, draft-only or a deterministic workflow when a non-compensable gate fails, an incident cannot be reconstructed, control telemetry disappears or the configuration changes beyond the evidence. Re-evaluate after model, prompt, tool, permission, parser, retrieval, memory or policy changes. Security evidence does not automatically transfer across those changes.

12

Record the concrete technical decision

Ship only if every mandatory gate passes, the complete configured system meets the predeclared workload threshold, control failures fail safely, and rollout and incident owners accept the residual risk. Constrain to a lower-authority mode when useful outcomes pass but action or disclosure evidence remains unresolved. Reject or redesign when any mandatory gate fails; do not average a severe security failure into a quality score.

The decision record should separate verified source facts, vendor guidance, local test evidence, assumptions and AccessAllGPT recommendations. It should also name unresolved attacks and evidence gaps. “No known failure in this suite” is a bounded result; “prompt injection safe” is not.

13

Copy-ready prompt-injection deployment record

Complete this AccessAllGPT template for one configured workflow. Entries stay in this browser tab. Replace prompts with dated local evidence or mark them unresolved; an unresolved mandatory security gate cannot pass.

Entries stay in this browser tab and are not submitted to AccessAllGPT. Blank responses are copied as [Unresolved].

Deploy, constrain or reject; owner; users; task; data classes; consequence level; decision and expiry dates.

Provider and model version; prompt and policy hashes; retrieval corpus; memory; tools; identities; parser; retries; fallback; deployment commit.

Every user, file, web, message, tool, image, memory and agent ingress; controller; provenance; tenant; sensitivity; model-visible destination.

Readable sensitive data; executable operations; destinations; credentials; tenant boundaries; reversible and irreversible consequences.

Cross-tenant disclosure, credentials, prohibited destinations, unauthorized actions, approval mismatch and other stop conditions; result and evidence link.

Typed schemas; parsing; authorization; least privilege; egress policy; approval binding; rate and spend limits; fail-closed behavior.

Suite and version; attack families and content types; benign controls; repetitions; case-level outcomes; policy denials; false blocks; unresolved attacks.

Control-failure tests; degraded mode; rollback trigger and owner; credential revocation; poisoned-content removal; trace retention; tabletop date.

Eligible users, tenants, data and actions; traffic, time and spend ceilings; monitoring; incident route; automatic reduction to read-only or draft-only.

Approved mode; residual risk owner; rejected paths; unresolved evidence; model, prompt, tool, permission, corpus, parser and policy changes that force review.

Primary sources

  1. LLM01:2025 Prompt InjectionOWASP GenAI Security Project · Reviewed: Definition, direct and indirect prompt injection, impacts, prevention and mitigation strategies, and attack scenarios · Retrieved · Supports: OWASP distinguishes direct from indirect prompt injection, ties impact to application context and model agency, says fool-proof prevention methods are unclear, and recommends layered mitigations including constrained behavior, output validation, least privilege, human approval and adversarial testing.
  2. Adversarial Machine Learning: A Taxonomy and Terminology of Attacks and Mitigations (NIST AI 100-2 E2025)National Institute of Standards and Technology · Reviewed: Publication metadata, planning notes, abstract, keywords and documentation links · Retrieved · Supports: NIST describes a taxonomy spanning ML methods, attack life-cycle stages, attacker goals, capabilities and knowledge, and identifies challenges and mitigation methods. The publication provides security terminology rather than certifying a specific prompt-injection control.
  3. Not what you've signed up for: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection (version 2)arXiv (authors from CISPA Helmholtz Center for Information Security and Saarland University) · Reviewed: Abstract, version history, stated threat model, demonstrated attack scope and limitations implied by the tested systems · Retrieved · Supports: The authors define indirect prompt injection through retrieved data and report demonstrations against named 2023-era real and synthetic LLM-integrated applications. This establishes practical examples in that historical scope, not a current prevalence rate or a universal exploit result.
  4. Safety in building agentsOpenAI Developer Documentation · Reviewed: Prompt injection and private-data risks, untrusted variables, structured outputs, tool approvals, input guardrails, trace graders, evaluations and combined controls · Retrieved · Supports: OpenAI advises keeping untrusted variables out of developer messages, constraining data flow with structured outputs, retaining tool approvals, applying input guardrails, and running trace graders and evaluations. This is vendor implementation guidance, not independent evidence that the controls eliminate prompt injection.

Limitations

This guide contains no original attack execution, penetration test, control validation or prevalence estimate. The cited indirect prompt-injection demonstrations use 2023-era systems and may not transfer unchanged to current configurations. OWASP and NIST provide guidance and taxonomy rather than assurance for a particular deployment; OpenAI documentation is vendor-authored. Finite adversarial suites cannot establish the absence of novel attacks, and model behavior, tools and provider controls can change. Qualified security, privacy, legal and incident-response review remains necessary.

Disclosures

AccessAllGPT did not attack, audit, certify, score or rank any model, agent framework or security product for this article. OpenAI documentation is included as labeled vendor guidance; OpenAI did not review or sponsor this work. No vendor supplied data, paid for placement or received an endorsement. AccessAllGPT Research is operated by NeuralArc, is independent, and is not affiliated with OpenAI. Publication-wide relationships are listed on the disclosures page.

Further AccessAllGPT guidance

  1. Before You Connect an MCP Server to Production
  2. Before You Give a Coding Agent Repository Access
  3. Where Human Approval Belongs in AI Automation
  4. RAG vs Fine-Tuning: Choose the Right Adaptation Path
  5. AccessAllGPT Research methodology
  6. Publication disclosures

Continue the research

Get evidence-led updates for teams making production AI decisions.