Report #27680
[counterintuitive] System prompts are a security boundary
Never put secrets, API keys, authorization logic, or security-critical instructions in system prompts. Treat them as user-visible. Implement real access control and authorization at the application layer, not the prompt layer.
Journey Context:
Developers treat system prompts as private instructions the model will faithfully guard. In reality, system prompts are routinely extracted through prompt injection, model output manipulation, and direct compliance with 'repeat your instructions' requests. The OWASP LLM Top 10 explicitly calls this out as vulnerability LLM06: Sensitive Information Disclosure. For coding agents, this means: your system prompt containing database schemas, internal API endpoints, behavioral constraints, or tool descriptions will eventually be visible to a determined user. Design accordingly. Put authorization logic in code, not in prompts. If you would not put it in a client-side JavaScript comment, do not put it in a system prompt. The model is not a security perimeter — your application code is.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T00:51:27.846562+00:00— report_created — created