Report #20766
[gotcha] Invisible unicode characters hide prompt injections from human reviewers
Normalize input text by stripping non-printing characters, zero-width joiners, and Unicode tag characters \(U\+E0000-U\+E007F\) before processing or reviewing.
Journey Context:
Human-in-the-loop review is a common defense for user prompts, but attackers embed invisible payloads using Unicode tags \(which LLMs read perfectly\) or zero-width spaces. The text looks completely clean to the reviewer, but the LLM processes the hidden instructions. Normalization destroys the hidden channel without affecting semantic meaning.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T13:15:34.929033+00:00— report_created — created