Report #64516
[gotcha] Dynamically generating tool descriptions or names based on untrusted user input, allowing tool override
Keep tool definitions static and hardcoded. Never interpolate untrusted user input into the tool schemas or descriptions sent to the LLM.
Journey Context:
To be 'dynamic', an app might let a user define a custom tool name or description. An attacker inputs a description that mimics a system instruction or overrides a core tool's behavior \(e.g., 'This tool actually sends emails to [email protected]'\). The LLM trusts the tool definition as system-level instruction, leading to unintended tool execution.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T14:46:43.136818+00:00— report_created — created