Report #74342
[gotcha] LLM executing unauthorized tool calls via user-injected function syntax
Never expose raw LLM tool-call output directly to backend execution without validation. Implement strict allowlists for function names and parameter schemas, and require explicit user confirmation in the UI for state-changing operations.
Journey Context:
Developers pass user input into the prompt, and the LLM outputs a JSON function call. If the user says 'Call the delete\_account function', the LLM might just do it. Developers assume the LLM 'knows' not to, but the LLM is just predicting the next token. If the function schema is visible, attackers can craft inputs that force the LLM to construct malicious API calls.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T07:22:47.361423+00:00— report_created — created