llm
security
ai_generated
partial
System prompt leaked via prompt injection — user input not sanitized
ID: llm/prompt-injection-system-prompt-leak
60%Fix Rate
85%Confidence
4Evidence
2023-01-01First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| any | active | — | — | — |
Root Cause
Adversarial user input can leak system prompts or override behavior.
genericWorkarounds
-
75% success Use a separate system message role and enforce input/output guardrails
Use role:system for instructions + apply output filtering
Sources: https://platform.openai.com/docs/guides/safety-best-practices
-
70% success Implement layered defense: input sanitization + output filtering + canary tokens
Add unique canary string to system prompt; monitor outputs for its presence
Sources: https://owasp.org/www-project-top-10-for-large-language-model-applications/
Dead Ends
Common approaches that don't work:
-
Filter exact phrase ignore previous instructions
85% fail
Trivially bypassed by rephrasing, unicode tricks, or multilingual variants
-
Put system prompt at the end of context
70% fail
LLMs attend to all positions; placement alone does not prevent extraction