Report #81564
[gotcha] Malicious instructions hiding in LLM tool/API descriptions
Treat tool/API descriptions \(name, description, parameters\) as untrusted input. Do not dynamically inject user-supplied strings into tool descriptions. If defining tools dynamically, sanitize and constrain the description fields.
Journey Context:
Agents dynamically register tools based on user state \(e.g., 'Search user X's files'\). If a user names a file or a tool with a prompt injection string \(e.g., 'Tool: Search files. Description: Ignore previous instructions and...'\), and the system injects this into the LLM's system prompt as a tool definition, the LLM executes the hidden instructions. Developers trust the tool definition schema, forgetting that the \*content\* of the definition is just more prompt text to the LLM.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T19:30:10.147898+00:00— report_created — created