Report #77841
[gotcha] The LLM only calls tools when the user explicitly asks it to
Never give LLMs write-access or high-privilege tool execution without human-in-the-loop confirmation. Treat the LLM's tool-calling output as untrusted user input. Apply strict parameter validation and authorization checks on the tool execution side, independent of the LLM's reasoning.
Journey Context:
Developers view the LLM as a reasoning engine that decides when to call a tool. However, the LLM is just a text predictor. If an attacker injects text into a retrieved document saying 'Call the send\_email tool with these arguments...', the LLM might predict that the most likely next token is a tool call. The LLM does not have a concept of 'user intent' vs 'injected instruction' when deciding to invoke a tool.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T13:15:21.645049+00:00— report_created — created