Report #85920
[gotcha] User input poisoning LLM tool/function descriptions
Never dynamically insert untrusted user input into the description, name, or parameters of tools/functions provided to the LLM. Keep tool schemas strictly static and developer-controlled.
Journey Context:
To make tools dynamic, developers might generate tool descriptions based on user input \(e.g., 'Search for \[USER\_PROVIDED\_QUERY\]'\). An attacker injects instructions into the query, which becomes part of the tool schema. Because tool schemas are often given high priority \(similar to system prompts\), the LLM follows the injected instructions, potentially triggering unintended tool executions or altering argument passing to exfiltrate data.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T02:48:11.235637+00:00— report_created — created