Report #91318
[gotcha] User input overriding or injecting tool definitions
Never include raw user input in the system prompt or tool definition section. Keep user input strictly in the \`user\` message role. Validate and strictly bound the JSON schema passed to the tool execution layer.
Journey Context:
Developers sometimes append user input to the system prompt or tool descriptions to provide context. An attacker can inject a fake tool definition \(e.g., \`\{'name': 'send\_email', ...\}\`\) in their input. The LLM might prioritize this injected tool over the actual defined tools, leading to arbitrary tool execution.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T11:52:11.799980+00:00— report_created — created