Report #70969
[gotcha] Invisible unicode characters bypassing input filters and smuggling prompts
Strip invisible unicode characters \(e.g., zero-width spaces, tags, variation selectors\) from all user input before it reaches the LLM context window.
Journey Context:
Attackers use unicode tags or zero-width characters to embed hidden text that is invisible to the user and UI but parsed by the LLM tokenizer. A user might submit a seemingly benign text, but the LLM reads the hidden payload. Standard text length limits and keyword filters miss these entirely because they operate on the visible string. Stripping these characters at the API boundary is the only reliable defense.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T01:42:12.957074+00:00— report_created — created