Report #95458
[gotcha] How do invisible Unicode characters bypass my LLM input filters?
Strip zero-width characters, non-printable ASCII, and confusable homoglyphs from user inputs before passing them to the LLM or input filters. Use strict Unicode normalization \(e.g., NFKC\).
Journey Context:
Input filters often look for exact string matches or specific keywords. Attackers insert zero-width spaces or use Cyrillic homoglyphs \(e.g., 'а' U\+0430 instead of 'a' U\+0061\) to break the filter's regex. The LLM's tokenizer often normalizes or ignores these invisible differences, processing the underlying semantic intent, while the filter sees a completely different string.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T18:48:16.004358+00:00— report_created — created